2011-05-04 71 views
0

我有本地通知問題。嘗試使用本地通知重新回到應用程序時,應用程序崩潰。 我複製了Kitchen Sink樣本,但修改了一下bg.js. 在bg.js,有這樣的事情:鈦移動本地通知崩潰

Titanium.App.addEventListener('whatever', function(e){ 

    var myNotification = Titanium.App.iOS.scheduleLocalNotification({ 
    alertBody: msg_body, 
    alertAction: "Yup", 
    userInfo: {"key": "value"}, 
    date:new Date(new Date().getTime()) 
    }); 

}); 

那麼,這是不是我的確切的代碼,但是這是精神。我試圖刪除一切無用,但無法找到答案... 這裏是崩潰報告標題:https://gist.github.com/956064 這是一個有點文件記錄的問題?

編輯:在代碼中的錯字。

+0

請問的KitchenSink背景例如,在你的環境中運行? – 2011-05-04 22:15:44

+0

是的,它的工作原理。但它在進入後臺3秒後會運行一次。主要區別是我的通知是在應用程序事件中啓動的... – jipiboily 2011-05-05 12:52:03

+0

您的事件是否觸發在bg中? – bh88 2011-05-05 14:58:51

回答

3

對於您使用事件偵聽器,我無法說出其中的一種或另一種方式,但這裏的核心問題是應用程序崩潰。這是因爲您正在使用相同的變量名創建多個localNotifications。解決您的問題的方法是確保每次計劃localNotification時不要使用相同的變量名稱,因此請使用類似數組的東西。我有同樣的問題,這是一個30秒的固定拋定義成一個陣列,例如:

notification[n] = Titanium.App.iOS.scheduleLocalNotification({ 
alertBody:"alert body", 
alertAction:"View App", 
userInfo:{"hello":"world"}, 
date:new Date(new Date().getTime() + 3000) // 3 seconds after backgrounding 
}); 
n++; 
+0

我會嘗試這個星期回來給你!謝謝! – jipiboily 2011-05-28 22:32:19

+0

似乎很好!謝謝! – jipiboily 2011-06-01 14:17:23

+0

只爲那些可能會掙扎的人,這裏有更多的代碼: 'var n = 0; var alertCount = 0; var notification = []; 功能通知(RESP){ \t //這上的 '暫停' 的應用程序 \t通知[N] = Ti.App.iOS.scheduleLocalNotification({ \t \t alertBody創建通知警報:RESP, \t \t alertAction : 「查看應用程序」, \t \t USERINFO:{ 「你好」: 「世界」}, \t \t徽章:N + 1, \t \t日期,新的日期(新的日期()的getTime()+ 3000) \t}); \t n ++; } ' – xtremerunnerars 2011-06-20 21:49:04

0

的主要問題是,userInfo字段未填充,這導致NCFDictionary異常。分配一個空的對象{}userInfo解決問題:

var notification = Ti.App.iOS.scheduleLocalNotification({ 
     date : date, 
     alertBody : 'The alert!', 
     alertAction : 'Launch now', 
     repeat : 'daily', 
     userInfo : {}   // <------- This line! 
    });