需要在 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 中显示本机应用程序组件吗?

APN、GCM(FCM):如何在通知中添加富媒体?

我们可以在cordova中识别UIGesture吗(在cordova中显示本地侧菜单的本机手势)

phonegap-plugin-push 获取不是 FCM 令牌的 APN 令牌

使用WebView和Cordova实现Native