2014-09-22 2 views
10

Использование Cordova (ionicframework + angularjs) Постройте для использования push-запросов на уведомления для устройств Android. При регистрации successHandler() уволен с результатом ('ok')! Почему метод onNotification() не уволен в любое время ??.Исходная ошибка onnotification не определена в push-уведомлении cordova android

var pushNotification; 
    document.addEventListener("deviceready", onDeviceReady, false); 
    function onDeviceReady() { 

     pushNotification = window.plugins.pushNotification; 
     setupNotificationsForandroid(); 
    } 
    //begin setup 
    function setupNotificationsForandroid() { 
    // alert("inside setup"); 
     if (device.platform == 'android' || device.platform == 'Android' || device.platform == "amazon-fireos"){ 

      pushNotification.register(
      successHandler, 
      errorHandler, 
      { 
       "senderID":"856763042820", 
       "ecb":"onNotification" 
      }); 
     } else { 
      pushNotification.register(
      tokenHandler, 
      errorHandler, 
      { 
       "badge":"true", 
       "sound":"true", 
       "alert":"true", 
       "ecb":"onNotificationAPN" 
      }); 
     } 
    } 
    function successHandler(result){ 

     //alert("success"+result); 

    } 
    function errorHandler(){ 

     alert("error"); 
    } 
    // Android 
    function onNotification(e) { 
     //alert("inside onnotification"); 
     switch(e.event) 
     { 
     case 'registered': 
       if (e.regid.length > 0){ 
       //set up the server call for storing registraion ids 
       alert(e.regid); 
       } 

     break; 

     case 'message': 
       // if this flag is set, this notification happened while we were in the foreground. 
      if(e.foreground){ 
       var soundfile = e.soundname || e.payload.sound; 
       var my_media = new Media("android/assets/www/"+ soundfile); 
       my_media.play(); 
      }else{ 
       // otherwise we were launched because the user touched a notification in the notification tray. 
      } 


      break; 

     case 'error': 
       console.log("Error"+e.msg); 
       break; 

     default: 
      console.log("An unknown event"); 
      return; 
     } 
    } 

Вот моя консоль сообщение:

09-22 11:38:46.151: I/Web Console(24662): processMessage failed: Stack: ReferenceError: onNotification is not defined 
09-22 11:38:46.151: I/Web Console(24662):  at eval (eval at processMessage (file:///android_asset/www/cordova.js:1006:26), <anonymous>:1:1) 
09-22 11:38:46.151: I/Web Console(24662):  at processMessage (file:///android_asset/www/cordova.js:1006:13) 
09-22 11:38:46.151: I/Web Console(24662):  at Function.androidExec.processMessages (file:///android_asset/www/cordova.js:1076:13) 
09-22 11:38:46.151: I/Web Console(24662):  at pollOnce (file:///android_asset/www/cordova.js:944:17) 
09-22 11:38:46.151: I/Web Console(24662):  at pollOnceFromOnlineEvent (file:///android_asset/www/cordova.js:939:5) at file:///android_asset/www/cordova.js:1045 
09-22 11:38:46.151: D/CordovaLog(24662): file:///android_asset/www/cordova.js: Line 1046 : processMessage failed: Message: Jjavascript:onNotification({"regid":"APA91bHDLg9BZl-eicx3tS-MjVGy-mcufmbRc-EpCuKzb9b_tPddG125jyxY-OhVR5vul6az-eJ2nZ0PEiOVPqP2KjClaUwAKTBQx5gsIluI0jsGIrpCvNQdUbtKUBxNNH0DH94RHuGpjU29xhTS5Cl8qIgH1MlJHw","event":"registered"}) 

Основываясь на этой processMessage failed: Stack: ReferenceError: onNotification is not defined консоли сообщение я думаю, что проблема с onNotification() .Please помочь

ответ

17

onNotification должны иметь объем в окне.

window.onNotification = function(){ 

} 
+1

Thaks loooooot вы экономите свои два дня головной боли –

+0

@Hanh Ля - вы сохранили мой тоже. У меня тоже была такая же проблема. Спасибо чувак – Dino

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