#android #parsing #cordova #push-notification
#Android #синтаксический анализ #кордова #push-уведомление
Вопрос:
Я получаю установку, отображаемую в браузере Parse data, правильное имя приложения, номер версии, идентификатор установки, и я подписываюсь на канал на основе идентификатора сеанса пользователя, все это отображается в правильных столбцах, но столбец deviceToken пуст (хотя я не уверен, нужен ли Androidэто или просто iOS)
Когда я пытаюсь отправить push из Parse, он показывает правильное количество получателей, статус отображается как выполненный в Parse, но PN никогда не приходит на телефон.
Это приложение Cordova 3.5.0, это код, который я использую в deviceready
функции. Опять же, я не уверен, что мне нужно получить installationId, поскольку я его не использую, но во всех руководствах, которые я видел, кажется, упоминается это после метода инициализации:
// init parse
window.parsePlugin.initialize(
"app_id",
"client_key",
function() {
console.log( 'PARSE INIT OK' );
window.parsePlugin.getInstallationId(function(id) {
installationID = id;
}, function(e) {
console.log("Error Getting ID: " e.code " : " e.message);
})
},
function( e ) {
console.log( 'PARSE FAILED' );
}
);
Я вижу сообщение «PARSE INIT OK» в logCat в Eclipse.
Я установил плагин из этого репозитория: https://github.com/benjie/phonegap-parse-plugin
Ответ №1:
На данный момент я исправил это, вручную добавив следующее к своей основной деятельности:
// register device for parse
Parse.initialize(this, "app_id", "client_key");
PushService.setDefaultPushCallback(this, MyApp.class);
ParseAnalytics.trackAppOpened(getIntent());
ParseInstallation.getCurrentInstallation().saveInBackground();
Это работает, но я бы предпочел не изменять основной класс Activity — я надеюсь, что я сделал что-то простое неправильно с плагином, но пока это работает.
Если я смогу найти способ заставить плагин использовать перехват для добавления кода в класс onCreate, я обновлю ответ