javascript - Phonegap 插件推送 & Node-gcm 未注册

标签 javascript android node.js cordova phonegap-plugins

所以我在这里看到其他人也有这个问题。我所拥有的一切似乎都不对劲。这是我的问题的步骤:

1) 我在手机上安装了 Ionic 应用程序。

2) 使用 Google 控制台设置我的发件人 key 和 API key 。 3)创建了我的node-gcm服务器。

4) 使用我的phonegap-plugin-push 设备 token 向我的手机发送通知。

5) 卸载了我的应用

6) 重新安装应用程序。

7) 尝试发送通知,但现在我收到 GCM 的未注册错误。

我交叉检查了我的所有 key :服务器、发件人、设备。全部正确。我不明白为什么重新安装应用程序后,我收到未注册错误。以下是我正在使用的工具: Ionic 框架、Android 手机、NodeJS 服务器、Node-gcm、Google 开发控制台、phonegap-plugin-push

最后,代码:

.run(function($ionicPlatform, $ionicPopup, $rootScope, $http, $state) {
  $ionicPlatform.ready(function() {
    var push = PushNotification.init({
        android: {
          senderID: "7821....1490",
			    sound: "true",
			    vibration: "true"
        },
        browser: {
            pushServiceURL: 'http://push.api.phonegap.com/v1/push'
        },
        ios: {
            alert: "true",
            badge: true,
            sound: "true",
			      vibration: "true",
			      clearBadge: true
        },
        windows: {}
    });
    push.on('registration', function(data) {
        console.log("Device Token: " + data.registrationId);
        $rootScope.devToken = data.registrationId;
    })

var message = new gcm.Message();
				message.addData('title', 'Alert');
				message.addData('message', 'Message From: '+ messageUser + '\n' + 'Message Text: ' + messageText);
				//message.addData('image', image);
				sender.send(message, android, function (err, response) {
					if(err) {}
        			else {
						console.log(response.results);
						//response is NotRegistered, unregister devices
						for (var i = 0; i < response.results.length; i++) {
							if (response.results[i].error == 'NotRegistered') {
								console.log("ERROR");
							}
						}
					}    
				});

我愿意和你一起解决这个问题。只要知道,我已经检查了所有 key ,并且所有 key 都是正确的。当我重新安装应用程序时,我获得了一个新的设备 token ,并且我正在尝试推送到该新的设备 token 。

最佳答案

好的!对于有此问题的任何人,请阅读此处!

使用推送插件,在应用程序卸载时。它不会清除所有数据。我将设备 token 存储在范围变量中并将其存储在本地存储中。卸载应用程序时,请先进入设置并清除所有数据,然后再卸载。重新安装后,您将获得一个新 token 并且它应该可以工作!

关于javascript - Phonegap 插件推送 & Node-gcm 未注册,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39759615/

相关文章:

javascript - IE 上新 XMLHttpRequest() 的 JS Ajax 未指定错误

android - 在 Kotlin 中查询 Android 的 ContactsContract

c++ - node.js 内部 : How can I find out where `process.binding(' eval')` gets defined?

javascript - 从 AngularJS 发布到 Amazon S3 时出错

node.js - 在node中构建项目时如何将.env和其他文件放在dist文件夹中?

javascript - 在加载文档之前隐藏图像,然后对其应用效果

javascript - 用于关闭和打开选择下拉列表的 Jquery 事件,而不是在更改时

android - 在 twilio 中获取 channel 名称时出错。我在这里实现一对一聊天

android - 发布版本上没有类定义错误?

javascript - 有什么方法可以只设置 meteor 发布的一个实例吗?