0

もちろん、Sencha Touch 2 と RSS フィードを使用して、お気に入りのニュース サイトの最新記事のリストを表示するシンプルなアプリを作成したいと考えています。

RSS フィードからデータを取得し、タイトル、作成者、日付、および内容を示すリストとして表示するにはどうすればよいですか?

最新のニュース記事のリストを取得できますが、著者、日付、スニペットなどではなく、各アイテムのタイトル/見出ししか表示できません。これが私のコードです:

1 モデル、1 ストア、1 ビュー、1 app.js:

//The store
Ext.define("NewsApp.store.EbStore", {
extend: "Ext.data.Store",
requires: ["Ext.data.proxy.JsonP", "Ext.dataview.List" ],
config: {
    model: "NewsApp.model.NewsListModel",
    autoLoad: true,
    proxy: {
        type: 'jsonp',
        url: 'https://ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=5&q=http://feeds.feedburner.com/newsapp_pol',
        reader: {
            type: 'json',
            rootProperty: 'responseData.feed.entries'
            }
        }
    }    
});


//The Model
Ext.define("NewsApp.model.NewsListModel", {
extend: "Ext.data.Model",
config: {
    fields: [
    {name: 'title', type: 'auto'},
    {name: 'author', type: 'auto'},
  ]
} 
});

//The view
Ext.define("NewsApp.view.NewsList", {
extend: "Ext.Container",
requires: "Ext.Toolbar",
alias: "widget.newslistview",

config: {
    layout: {
        type: 'fit'
    },

    items: [{
        xtype: "toolbar",
        title: "Danske Nyheder",
        docked: "top",
        items: [
                {
                    xtype: 'spacer'
                },
                {
                    xtype: "button",
                    text: "Indstillinger",
                    ui: "action",
                    id: "settingsButton",
                    iconMask: true,
                    iconCls: 'settings'
                },
                  {
                    xtype: "button",
                    text: "Refresh",
                    ui: "action",
                    id: "refreshButton",
                    iconMask: true,
                    iconCls: 'refresh'
                  }
                ]
    },
    {
        xtype: "list",
        store: "EbStore",
        itemId:"EbList",
        onItemDisclosure: true,
        itemTpl: '{title}'
    }
    ],
    }
});

// And the app.js just for kicks
Ext.application({
name: "NewsApp",
models: ["NewsListModel"],
stores: ["EbStore"],
views: ["NewsList"],

launch: function () {
    console.log("App starts");
    var newsListView = {
        xtype: "newslistview"
    };

    Ext.Viewport.add([newsListView]);
}
});

このコードで、RSS アイテムのタイトルをうまく表示できます。しかし、{title} をたとえば {author} に変更すると、ビューにリスト アイテムが作成されますが、コンテンツはまったくありません。私が読もうとしている RSS は通常の標準を使用していると思います: http://feeds.feedburner.com/newsapp_pol


では、タイトルだけでなく残りの RSS にアクセスするにはどうすればよいでしょうか?
プロキシコードでどのデータがキャプチャされているのか、どのように、またはどのような形式で正確にキャプチャされているのかを理解していないことが原因だと思います。

誰でも助けることができますか?:-)

Sencha Touch RSS リーダーのこれら 2 つの例を調べましたが、コードが高度すぎて理解できないことを除けば、どちらも優れてい
ます。
.com/AndreaCammarata/FeedBurner-RSS-リーダー

4

1 に答える 1

1

Troels、

Googleフィードのデータ応答を確認したい場合は、読みやすくするためにjsonビューティファイアを使用してjsonデータを確認することをお勧めします。まず、 GoogleフィードのURLをブラウザのアドレスバーに貼り付けます。結果のjson応答をコピーし、ビューティファイアに貼り付けます。これにより、応答データのデータフィールドの構造化されたビューが得られます。

私がそれを試したとき、最初のエントリは次のようになりました:

                "title": "Over 50 såret under kampe i Kosovo",
                "link": "http://politiken.dk/udland/ECE1672568/over-50-saaret-under-kampe-i-kosovo/",
                "author": "",
                "publishedDate": "Thu, 28 Jun 2012 12:09:18 -0700",
                "contentSnippet": "35 politifolk og 20 serbere blev såret, da en gruppe serbere stødte sammen i det etnisk delte Kosovo.",
                "content": "35 politifolk og 20 serbere blev såret, da en gruppe serbere stødte sammen i det etnisk delte Kosovo.",
                "categories": []

すべてのエントリで「作成者」フィールドが空であることに気付きました。これは、空のリストを取得する理由を説明している可能性があります。

これは、フィード内のデータ構造を理解し、コード内に一致する参照を作成するのに役立ちます。

乾杯、ラスムス

于 2012-06-28T22:39:15.477 に答える