繁体   English   中英

向ngCordova注册Android推送通知时出现processMessageFailed错误

[英]processMessageFailed error when registering Android push notifications with ngCordova

由于其他一些应用程序要求,我需要引导角度。 使用ngCordova 推送通知 ($ cordovaPush)注册android通知时,这会导致问题。

我看到“ processMessage失败:错误:”

processMessage failed: Error: Error: [$injector:unpr] Unknown provider: $cordovaPushProvider <- $cordovaPush
http://errors.angularjs.org/1.3.6/$injector/unpr?p0=%24cordovaPushProvider%20%3C-%20%24cordovaPush 
cordova.js:1059
processMessage failed: Stack: Error: [$injector:unpr] Unknown provider: $cordovaPushProvider <- $cordovaPush
http://errors.angularjs.org/1.3.6/$injector/unpr?p0=%24cordovaPushProvider%20%3C-%20%24cordovaPush
    at file:///android_asset/www/lib/ionic/js/ionic.bundle.js:7888:12
    at file:///android_asset/www/lib/ionic/js/ionic.bundle.js:11806:19
    at Object.getService [as get] (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:11953:39)
    at file:///android_asset/www/lib/ionic/js/ionic.bundle.js:11811:45
    at Object.getService [as get] (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:11953:39)
    at eval (eval at processMessage (file:///android_asset/www/cordova.js:1021:26), <anonymous>:1:75)
    at processMessage (file:///android_asset/www/cordova.js:1021:13)
    at Function.androidExec.processMessages (file:///android_asset/www/cordova.js:1091:13)
    at pollOnce (file:///android_asset/www/cordova.js:956:17)
    at pollOnceFromOnlineEvent (file:///android_asset/www/cordova.js:946:5) 
cordova.js:1060
processMessage failed: Message: Jjavascript:angular.element(document.querySelector('[ng-app]')).injector().get('$cordovaPush').onNotification({"regid":"APA91bEX-nZgrUPmxMxWKiIZpAi8zAaSgr58es6YXvaVk_wEffvm0pKPs-WNIxF-fTiYMxzxkZAxAul96ZxYVixWgSRs2VRn6NcTmPQXeQ7oXFghoL_Ya0cIbPLI1IQqOjPJzdVL974yV1A6VxFLwNHH1cjLkRp0-IIz6WaU4pHgImdOUD7HkOc","event":"registered"}) B

我跟踪了踪迹,并将下面的行确定为罪魁祸首。

config.ecb = "angular.element(document.querySelector('[ng-app]')).injector().get('$cordovaPush').onNotification";

该错误是由angular.element(document.querySelector('[ng-app]'))返回未定义引起的。

在我的情况下,访问$ injector的一种更正确的方法是使用此查询(贷记给Ionic博客文章 ):

angular.element(document.querySelector('html'))

有两种方法可以解决此问题。

  1. 通过编辑查询直接更改ng-cordova.js。
  2. 将“ ecb”字段添加到您的配置对象。 'ecb'字段的值应为angular.element(document.querySelector('html')).injector().get('$cordovaPush').onNotification

问题论坛中有关于此的更多信息。 我发现在找到上述建议的查询之前,没有提出的解决方案对我有用。

我希望看到任何其他解决方案,如果有的话!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM