2015-09-12 2 views
2

Привет Я следую инструкциям нижеандроид push-уведомление в телефоне не получает уведомления

1) Я создал структуру проекта cordova.
2) Я добавил платформу (android).
3) Я добавил плагин Cordova

cordova plugin add https://github.com/phonegap-build/PushPlugin.git#2.4.0 

4) Bulid проект Cordova.
5) Затем я импортировать созданное приложение в андроид затмения (4.4.2)
6) Я написал следующий код в файл index.js

init: function(){ 
    alert("init"); 
    var pushNotification = window.plugins.pushNotification; 

    pushNotification.register(successHandler, errorHandler, 
     { 
      'senderID':'XXXXXXXXXX', 
      'ecb':'onNotificationGCM' // callback function 
     } 
    ); 

    function successHandler(result) { 
     console.log('Success: '+ result); 
     alert(result); 
    } 

    function errorHandler(error) { 
     console.log('Error: '+ error); 
    } 

    function onNotificationGCM(e) { 
     alert("comming"); 
     if('registered' === e.event) { 
      // Successfully registered device. 
     } 
     else if('error' === e.event) { 
      // Failed to register device. 
     } 
    }; 

Я получаю откос, как «КИ» й я не в состоянии вызова «ECB»: onNotificationGCM»// функция обратного вызова

В Android консоли я получаю сильфона сообщения

V/PushPlugin(2512): execute: action=register 
V/PushPlugin(2512): execute: data=  [{"senderID":"889953963751","ecb":"onNotificationGCM"}] V/PushPlugin(2512): execute: jo={"senderID":"889953963751","ecb":"onNotificationGCM"} V/PushPlugin(2512): execute: ECB=onNotificationGCM senderID=889953963751 
    09-12 03:13:33.453: D/GCMRegistrar(2512): resetting backoff for com.ensis.hello 
    09-12 03:13:33.613: V/GCMRegistrar(2512): Registering app com.ensis.hello of senders 889953963751 
    09-12 W/PluginManager(2512): THREAD WARNING: exec() call to PushPlugin.register blocked the main thread for 181ms. Plugin should use CordovaInterface.getThreadPool(). 
+1

Вы зарегистрированы в GCM? –

+0

Да, я зарегистрировал – malli

+0

, вы получили регистрационный номер GCM? –

ответ

0

Это поток уведомления толчка:

  1. ваш запрос приложение регистрация на удаленный Apple, или сервер Google
  2. если регистрация в порядке, сервер удалить возвращает маркер, которые идентифицируют это конкретное приложение на устройстве
  3. вы отправляете этот знак ваш сервер, сохраняя его (например, на дб)
  4. вы отправить уведомление толчка (с сервера), призывающими компаниями Apple или услугу Google с сообщением и лексемы пользователей, которым вы хотите уведомить
  5. этих услуг толчка к устройству/приложению, когда уведомление с сообщением

Вы должны выполнить все эти шаги, чтобы работать с уведомлением о нажатии.

Для андроид вам нужно поймать регистрационный идентификатор (маркер) внутри registered случае обработчик уведомлений:

function onNotificationGCM(e) { 
    alert("comming"); 
    if('registered' === e.event) { 
     // Successfully registered device. 
     console.log("regID = " + e.regid); 
     // save/send this registration id on your server 
    } else if('error' === e.event) { 
     // Failed to register device. 
    } 
}; 

Для прошивки вам нужно, чтобы поймать его в succesHandler функции register.

Для получения дополнительной информации см. this example in the plugin repository.

+0

в successHandler function. Я получаю ответ как «OK» – malli

+0

Как я могу получить регистрацию – malli

+0

Я обновил ответ. Если это полезно, примите это. – lifeisfoo

Смежные вопросы