我很难在基于Phonegap的应用程序中使用谷歌云消息。
我遵循这里的指示。它使用PushPlugin,我根据说明将其安装在我的应用程序中。
不知怎的,我在注册后没有得到任何响应,当我注册时什么都没发生(没有控制台日志显示):
window.plugins.pushNotification.register(
pushSuccessHandler,
pushErrorHandler, {
"senderID":"12345678",
"ecb":"onNotificationGCM"
}
);
var pushSuccessHandler = function(result) {
console.log(result);
};
var pushErrorHandler = function(error) {
console.log(error);
};
var onNotificationGCM = function(e) {
console.log(e);
switch(e.event) {
case 'registered' : {
console.log('android reg id: ' + e.regid);
break;
}
}
};
我在GoogleDeveloperConsole中设置了一个API项目,获得了一个用作SenderID的项目编号,并对Phonegap清单和配置xml文件进行了所有修改。我的应用程序尚未在Play商店中发布。
这是让云消息工作所必需的吗?
上面的代码是否足以获得"reg id",或者我是否首先需要从服务器推送一些东西,然后使用什么"reg id?"??
在某个地方,我读到推送通知只在Phonegap应用程序运行时或点击通知时才起作用,所以当应用程序从正常图标启动时就不起作用了。然而,我不明白这一点,因为当应用程序不运行时,通知不应该工作吗?
推送通知将在不发布的情况下工作,不需要发布。只需要从开发人员控制台获取发件人ID。Sender Id-开发人员控制台中的项目编号
有关更多详细信息,您可以在这里查看
https://github.com/phonegap-build/PushPlugin
我正在使用它,它对android和iOS都很好。
更新:
我正在使用Intellij IDEA来构建应用程序。当我使用phonegap build android
编译时,推送通知运行正常。
我不得不在IDEA项目的项目设置中添加"android-support-v13.jar
"one_answers"gcm.jar
"文件作为库,以使其正常工作。这些库需要添加到作用域为"Compile"的主模块的依赖项中。
之前,我只是在模块的Dependencies中直接添加它们,Scope为"Provided",但显然这不起作用(尽管它已编译)。