【问题标题】:Ionic Push Notifications: getPushPlugin is undefined离子推送通知:getPushPlugin 未定义
【发布时间】:2016-04-12 05:19:48
【问题描述】:

我正在尝试学习如何为 Ionic 应用程序使用推送通知。我正在构建一个测试应用程序,我得到以下错误输出:

Error: t._getPushPlugin(...) is undefined
[33]</k</<.value/<@http://192.168.223.1:8100/lib/ionic-platform-web-client/dist/ionic.io.bundle.min.js:3:6764
[33]</k</<.value@http://192.168.223.1:8100/lib/ionic-platform-web-client/dist/ionic.io.bundle.min.js:3:11085
[33]</k</<.value@http://192.168.223.1:8100/lib/ionic-platform-web-client/dist/ionic.io.bundle.min.js:3:6570
@http://192.168.223.1:8100/js/controllers.js:24:5
$RootScopeProvider/this.$get</Scope.prototype.$emit@http://192.168.223.1:8100/lib/ionic/js/ionic.bundle.js:29404:15
ionicViewSwitcher.create/switcher.emit@http://192.168.223.1:8100/lib/ionic/js/ionic.bundle.js:55170:15
transitionComplete@http://192.168.223.1:8100/lib/ionic/js/ionic.bundle.js:55134:15
onReflow@http://192.168.223.1:8100/lib/ionic/js/ionic.bundle.js:55106:15
6     300754   error    Ionic User:, [object Object]

我假设最相关的部分是第一行,说明 getPushPlugin 未定义。此外,dev_push 为我工作,但现在我正在尝试做真正的推送通知,这不起作用。

我使用以下方式安装了 phonegap 插件:

$ ionic plugin add phonegap-plugin-push --variable SENDER_ID="my_sender_id"

这是我的控制器代码:

.controller('DashCtrl', function($scope) {
  $scope.$on('$ionicView.enter', function(e) {
    console.log("if");
    var push = new Ionic.Push({
      "onNotification": function(notification) {
          console.log("Got dat notification");
      }
    });
    var io = Ionic.io();
    var user = Ionic.User.current();

    if(!user.id) {
      user.id = '1234';
    }
    user.save();

    var callback = function () {
        push.addTokenToUser(user);
        user.save();
    };

    push.register(callback);
  });
})

编辑:

这是尝试在真机上运行的结果:

$ ionic run android
Running command: "C:\Program Files\nodejs\node.exe" C:\Users\antho\Desktop\pleasePush\hooks\after_prepare\010_add_platform_class.js C:/Users/antho/Desktop/pleasePush
add to body class: platform-android
Running command: cmd "/s /c "C:\Users\antho\Desktop\pleasePush\platforms\android\cordova\run.bat""
ANDROID_HOME=C:\Program Files (x86)\Android\android-sdk
JAVA_HOME=C:\Program Files (x86)\java\jdk1.7.0_55
WARNING : No target specified, deploying to device '2b0a9bf2'.
Running: C:\Users\antho\Desktop\pleasePush\platforms\android\gradlew cdvBuildDebug -b C:\Users\antho\Desktop\pleasePush\platforms\android\build.gradle -PcdvBuildArch=arm -Dorg.gradle.daemon=true

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring root project 'android'.
> Could not resolve all dependencies for configuration ':_debugCompile'.
   > Could not find any version that matches com.google.android.gms:play-services-gcm:+.
     Searched in the following locations:
         https://repo1.maven.org/maven2/com/google/android/gms/play-services-gcm/maven-metadata.xml
         https://repo1.maven.org/maven2/com/google/android/gms/play-services-gcm/
         file:/C:/Program Files (x86)/Android/android-sdk/extras/android/m2repository/com/google/android/gms/play-services-gcm/maven-metadata.xml
         file:/C:/Program Files (x86)/Android/android-sdk/extras/android/m2repository/com/google/android/gms/play-services-gcm/
     Required by:
         :android:unspecified

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 4.882 secs

C:\Users\antho\Desktop\pleasePush\platforms\android\cordova\node_modules\q\q.js:126
                    throw e;
                    ^
Error code 1 for command: cmd with args: /s /c "C:\Users\antho\Desktop\pleasePush\platforms\android\gradlew cdvBuildDebug -b C:\Users\antho\Desktop\pleasePush\platforms\android\build.gradle -PcdvBuildArch=arm -Dorg.gradle.daemon=true"
ERROR running one or more of the platforms: Error: cmd: Command failed with exit code 1
You may not have the required environment or OS to run this project

提前谢谢你。

【问题讨论】:

  • 你用什么命令来构建它? ios还是安卓?
  • @Ariel 我实际上并没有使用 build 命令。我正在使用“离子服务”并启用控制台日志输出
  • 它在浏览器上不起作用。您必须在真实设备上运行。
  • 您可以尝试在设备上运行它并更新我吗?我不确定您是否可以使用 Cordova 在浏览器上运行推送通知。
  • @DivyeshSavaliya 我用我在安卓设备上运行的结果更新了这个问题

标签: cordova mobile ionic-framework push-notification


【解决方案1】:

你在真实设备上运行的错误已经得到解答,请看this

step1 :对于不使用GCM的离子推送通知,请参考blog

step2 : 安卓或ios的云端推送通知请看ng-cordova 推送通知和步骤。

step3 : 云注册请关注Cloud-Push 注册后请关注How-To-Create-AndroidPushNotification

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多