在推送通知cordova android中没有定义参考错误onnotification

使用Cordova(ionicframework + angularjs)构build以使用Android设备的推送通知请求。当进行注册时, successHandler()被激发('ok')消息结果! 为什么onNotification()方法不会随时被触发?

 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()的问题。请帮助

  • 如何查看三星Galaxy S2中的控制台日志输出
  • WebView的select导致软键盘暂时隐藏然后回来
  • 基于多个ScrollViewanimation单个视图
  • 有没有办法在iPad中使用Webkit Inspector远程debugging?
  • 在Android上强制使用正确的CSS3转换百分比解释
  • 反应本机ListView TextInput从性能优化呈现locking
  • 在Android上使用addJavascriptInterface()传递JavaScript对象
  • 为什么上传显然成功时,上传的audio损坏?
  • onNotification必须在窗口范围内。

     window.onNotification = function(){ }