Локальное уведомление Titanium Mobile падает - PullRequest
0 голосов
/ 05 мая 2011

У меня проблема с локальными уведомлениями.Приложение вылетает при попытке вернуться в приложение с локальным уведомлением.Я скопировал образец 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 Это несколько документированная проблема?

РЕДАКТИРОВАТЬ: опечатка в коде.

Ответы [ 2 ]

3 голосов
/ 28 мая 2011

Я не могу так или иначе говорить о том, что вы используете прослушиватель событий, но основная проблема здесь - сбой приложения.Это вызвано тем, что вы создаете несколько локальных уведомлений с одним и тем же именем переменной.Решение вашей проблемы - убедиться, что вы не используете одно и то же имя переменной каждый раз, когда планируете 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 голосов
/ 09 декабря 2011

Основная проблема в том, что поле userInfo не заполнено, что вызывает исключение в NCFDictionary. Назначение пустого объекта {} userInfo решает проблему:

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