

「[簡単に外部RSSをサイトに表示できるGoogle Feed
API【複数RSS対応編】](http://news.7zz.jp/ajax/2447.html)」で紹介されているコードをほぼそのまま使わせてもらって
Monaca で複数の RSS を読み込むアプリを製作して公開していましたが Cordova 2.9を使用していたため 4.1 に切り替えたところ、
デバッガーでは全て読み込んでくれますがビルドすると HTML 部分とスプラッシュスクリーンしか表示されなくなりました。

「Monaca Cordova 3.5
移行ガイド」の「config.xmlの形式の変更による影響」や「[18-5.Cordovaの脆弱性問題（バージョンアップしたら音が出ないよ編）](http://easyapp.blog.fc2.com/blog-
entry-261.html)」 の「エクスポート＆インポート」も試してみたのですが、上手く行かず。

なにやら雲を掴むような説明で申し訳ないですが、  
解決のヒントを戴ければ幸いです。


CC BY-SA 3.0
2015-02-15T14:06:04.947
6529
2016-09-09T02:27:29.520
2015-02-16T03:53:23.410
4978
8297
question
monaca cordova
「簡単に外部RSSをサイトに表示できるGoogle Feed API【複数RSS対応編】」のコードが Cordova 4.1 にして動かなくなりました


Monacaで新しくRSSリーダーテンプレートにてプロジェクトを作成して、ビルドすると動きました。動作したコードが以下です。お役に立てると嬉しいです。

[code]

    <!DOCTYPE HTML>
    <html>
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, height=device-height, initial-scale=1, maximum-scale=1, user-scalable=no">
        <script src="components/loader.js"></script>
        <link rel="stylesheet" href="components/loader.css">
        <script type="text/javascript" src="https://www.google.com/jsapi"></script>
    
        <script type="text/javascript">
    
            // 初期設定
            var disp_entry_count = 8;       //表示させたい記事の数
    
            // RSS URL
            var site = new Array();
    
            site[0] = { 
                title:'GIZUMODO',
                url:'http://feeds.gizmodo.jp/rss/gizmodo/index.xml',
                disp_entry:2        // 取得する記事の数
            };
    
            site[1] = { 
                title:'Gigazin',
                url:'http://feed.rssad.jp/rss/gigazine/rss_2.0',
                disp_entry:3        // 取得する記事の数
            };
    
            site[2] = {            
                title:'ウェブソク',
                url:'http://news.7zz.jp/feed',
                disp_entry:5        // 取得する記事の数
            };
    
            var channel = new Array();
            var entry = new Array();
            var entries = new Array();
            var Feed = "";
    
            google.load("feeds", "1");
            function init() {
    
                var site_count = 0;
    
                for (var i=0; i<site.length; i++){
    
                    // 読み込むRSSを設定
                    var feed = new google.feeds.Feed(site[i]['url']);
                    feed.setNumEntries(site[i]['disp_entry'])
                    feed.load(function(rss) {
                        if (!rss.error) {
    
                            // RSSからサイトの情報を配列に格納
                            channel['title'] = rss.feed.title;
                            channel['link'] = rss.feed.link;
                            channel['favicon'] = "http://favicon.hatena.ne.jp/?url=" + channel['link'];
                            channel['description'] = rss.feed.description;
                            channel['author'] = rss.feed.author;
    
                            // RSSから記事の情報を配列に格納
                            for (var j=0; j<rss.feed.entries.length; j++){
    
                                var feed_entry = rss.feed.entries[j];
                                var entry = {
                                    site_title : channel['title'],
                                    site_link : channel['link'],
                                    site_favicon : channel['favicon'],
                                    title : feed_entry.title,
                                    link : feed_entry.link,
                                    content : feed_entry.content,
                                    contentSnippet : feed_entry.contentSnippet,
                                    publishedDate : feed_entry.publishedDate
                                };
    
                                var date = new Date(entry['publishedDate']);
                                entry['time'] = date.getTime();
                                var yy = date.getYear();
                                var mm = date.getMonth() + 1;
                                var dd = date.getDate();
                                if (yy < 2000) { yy += 1900; }
                                if (mm < 10) { mm = "0" + mm; }
                                if (dd < 10) { dd = "0" + dd; }
                                entry['date'] = yy + "年" + mm + "月" + dd + "日";
    
                                entry['img'] = entry['content'].match(/src="(.*?)"/igm);
    
                                if (entry['img'] != null) {
                                    for (var k=0; k<entry['img'].length; k++){
                                        entry['img'][k] = entry['img'][k].replace(/src=/ig, "");
                                        entry['img'][k] = entry['img'][k].replace(/"/ig, "");
                                    }
                                }
                                entries.push(entry);
                            }
                        }
                        site_count++;
                        if (site.length == site_count){ disp(); }
                    });
                }
            }
    
            function disp() {
    
                //日付順に並べ替え
                entries.sort (function (b1, b2) { return b1.time < b2.time ? 1 : -1; } );
    
                // 記事をhtmlに整形
                for (var l=0; l<disp_entry_count; l++){
                    if (entries.length < l+1){ break; }
    
                    if (entries[l]['img'] != null) { Feed += '<img width="100" src="' + entries[l]['img'][0] + '">n'; }
                    Feed += '<h2><img src="' + entries[l]['site_favicon'] + '">n'
                                + 'n'
                                + '<a href="' + entries[l]['site_link'] + '">' + entries[l]['site_title'] + '</a></h2>n'
                                + entries[l]['date']
                                + '<h3>n'
                                + '<a href="'+ entries[l]['link'] + '">' + entries[l]['title'] + '</a>n'
                                + '</h3>n'
                                + '<p>contentSnippet:' + entries[l]            ['contentSnippet'].substr(0, 100) + '……</p>nn';
                }
                // 表示するタグに追加
                $('#topics').append( Feed );
            }
    
            google.setOnLoadCallback(init);
    
            </script>
         </head>
         <body>
           <h1>Google AJAX Feed API　複数ブログの場合</h1>
           <!-- RSSを表示するタグ -->
           <div id="topics"></div>
           </body>
         </html>            
    
[/code]


CC BY-SA 3.0
2015-03-19T12:14:12.757
8133
2015-03-19T12:14:12.757
7871
6529
answer