需要在 Cordova 应用程序中使用本机 APNs/GCM 为 iOS 推送通知的指导
Posted
技术标签:
【中文标题】需要在 Cordova 应用程序中使用本机 APNs/GCM 为 iOS 推送通知的指导【英文标题】:Need guidance to Push Notification for iOS using Native APNs/GCM in Cordova Application 【发布时间】:2016-06-08 09:27:17 【问题描述】:我在我的 cordova 应用程序中使用了推送通知 plugin。我能够使用 GCM 获得 android 的通知,这非常容易。现在 ios 从周日开始对我来说是一个很大的痛苦,现在快 4 天了。我将分享我到目前为止所做的事情。请帮助我让通知也可以在 iOS 设备上运行。
根据插件,在应用程序端我的java脚本看起来像这样
myApp.controller('Register', function ($scope)
$scope.regGCM = function ()
document.addEventListener('deviceready', onDeviceReady, false);
function onDeviceReady()
var push = PushNotification.init(
"android":
"senderID": "41502493944",
"sound": "true",
"vibrate": "true",
,
"ios":
"alert": "true",
"badge": "true",
"sound": "true",
,
"windows":
);
push.on('registration', function (data)
var deviceid = data.registrationId;
alert(deviceid);
);
push.on('notification', function (data)
console.log("notification");
);
push.on('error', function (e)
console.log("push error");
);
);
当regGCM()
触发iOS 设备请求允许我的应用程序和它returns a token
的推送通知时。
然后为了在线测试推送通知,我使用了这个site,它需要我们的token
和.pem
文件。
为了创建一个.pem
文件,我做了以下事情。
1) 从here 创建了一个 p.notification 证书。
2) 将其安装在 mac 钥匙串中。
3) 将安装的证书导出为pushcert.p12
文件。
4)在终端执行这个命令(openssl pkcs12 -in pushcert.p12 -out pushcert.pem -nodes -clcerts
)我得到了pushcert.pem
文件。
在线测试site 说消息已发送,但我从未收到通知到我的 iOS 设备。我是推送通知的新手,不知道正确的步骤,可能会遗漏一些东西。有没有人在cordova中如何计算iOS p.notification。无论是使用 GCM 还是原生 APN,我都不介意这样做的方式。 任何帮助将不胜感激。
【问题讨论】:
【参考方案1】:我检查了提到的网站:http://www.pushwatch.com/apns/。它工作正常。
由于推送证书不正确,您没有收到推送通知。
如果您没有获得设备令牌,那么您可以假设证书没有正确创建。
问候...
-严厉的沙阿
【讨论】:
感谢您的回复 =) 我是 iOS 新手,不确定我是否遵循了正确的步骤。我得到了设备令牌。你怎么看 ?可能是我的证书问题?以上是关于需要在 Cordova 应用程序中使用本机 APNs/GCM 为 iOS 推送通知的指导的主要内容,如果未能解决你的问题,请参考以下文章
如何在从cordova创建的本机代码中使用相同的android SQLite DB?
Cordova:我可以在 div 中显示本机应用程序组件吗?
我们可以在cordova中识别UIGesture吗(在cordova中显示本地侧菜单的本机手势)