javascript读取新的rss条目并创建通知

javascript to read new rss entry and create a notification

本文关键字:创建 通知 rss 读取 javascript      更新时间:2023-09-26

我想创建一个javascript来检查新的rss提要是否已经使用电话间隙通知更新并显示通知方法。http://docs.phonegap.com/phonegap_notification_notification.md.html#Notification

     var oldEntry="";
 document.addEventListener("deviceready", onDeviceReady, false);
    // PhoneGap is ready
    //
    function onDeviceReady() {
        // Empty
    }
    // Show a custom alert
    //
    function sendRequest(){
      getRss("http://rss.cnn.com/rss/cnn_latest.rss.xml");      
      setTimeout('showAlert(newEntry.title)',4000);
    }

    function showAlert(data) {
     var st = randomString();
     if(oldEntry==""){
        oldEntry = data;
        navigator.notification.alert(
                data,  // message
                'New Rss Entry',            // title
                'New Rss Entry'              

        );        
     }
     else {
       if(oldEntry!=data){
        navigator.notification.alert(
                data,  // message
                'New Rss Entry',            // title
                'New Rss Entry'              

        );
        oldEntry = data;
       }
       }
       setTimeout('sendRequest()',8000);
    }
    function randomString() {
        var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";
        var string_length = 8;
        var randomstring = '';
        for (var i=0; i<string_length; i++) {
            var rnum = Math.floor(Math.random() * chars.length);
            randomstring += chars.substring(rnum,rnum+1);
        }
        return randomstring;
    }
   sendRequest();

现在,新的和旧的Rss标题都会弹出作为通知,是否可以限制该功能仅显示最新的Rss名称?

即使在8000毫秒后我取消了这两个通知,它们也会再次出现,但我想检查是否有新的通知,并只显示它们,而不是用户取消的通知。

这是为了获取新条目。

    var newEntry="";
        function getRss(url){
        if(url == null) return false;
                    // Create Google Feed API address
                    var api = "http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&callback=?&q="
    + encodeURIComponent(url);
                    api += "&output=json_xml"
                    // Send request
                    $.getJSON(api, function(data){
                        // Check for error
                        if (data.responseStatus == 200) {
                            // Process the feeds
                            _process(data.responseData);
                        } 
                                  else {
                        };
                    });             
        }
        var _process = function(data) {
                // Get JSON feed data
                var feeds = data.feed;
                if (!feeds) {
                    return false;
                }
// Get XML data for media (parseXML not used as requires 1.5+)
                var xml = getXMLDocument(data.xmlString);
                var xmlEntries = xml.getElementsByTagName('item');
                var entry = feeds.entries[0];
                newEntry = entry;
            };

可能存在许多问题。我想你可能遇到了缓存错误。所以试着添加这个-

api++"&tempVar="+Math.random((

就在你的代码后面-

api+="&output=json.xml">