【发布时间】: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