Я пытаюсь настроить push-уведомления внутри инициализатора в проекте Ember CLI. Мой инициализатор включает в себя:
initialize: function(container, application) {
var globals = container.lookup("route:application").get('globals');
application.deferReadiness();
document.addEventListener('deviceready', onDeviceReady, false);
function onDeviceReady() {
var startAppJob = setTimeout(function(){application.advanceReadiness();}, 10000),
pushNotification = window.plugins.pushNotification;
if ( device.platform == 'android' || device.platform == 'Android' ){
pushNotification.register(
successHandler,
errorHandler,
{
"senderID":"xxx",
"ecb":"onNotificationGCM"
});
}
}
Все идет нормально. За исключением того, что теперь ecb ожидает, что функция onNotificationGCM будет находиться в глобальной области видимости. Итак, куда должно идти следующее?
onNotificationGCM = function(e) {
switch( e.event ){
case 'registered':
clearTimeout(startAppJob)
application.advanceReadiness();
if ( e.regid.length > 0 ){
globals.set('push_registration_id', e.regid)
globals.set('push_device_type', 'iandroidos')
console.log('registered')
}
break;
Объявление его с помощью window.onNotificationGCM или this.onNotificationGCM внутри инициализатора не работает:
Ошибка processMessage: ошибка: ReferenceError: onNotificationGCM не определен
Этот вопрос Cordova Pushplugin: ecb не вызывается предлагает изменить обратный вызов, который в их примере становится:
"ecb":"window.GambifyApp.NotificationHandler.onNotificationGCM"
За исключением Ember CLI, что это будет внутри инициализатора? Можно ли вообще получить доступ или есть лучший способ реализовать все это в Ember CLI?
Заранее благодарю за любую помощь!
window.onNotificationGCM
определенно должно работать - person runspired   schedule 27.03.2015"ecb":"window.ecb"
- person runspired   schedule 27.03.2015