簡體   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