如何在 Cordova iOS 应用程序中实现推送通知

Posted

技术标签:

【中文标题】如何在 Cordova iOS 应用程序中实现推送通知【英文标题】:How to implement Push Notifications in cordova iOS application 【发布时间】:2016-03-18 10:16:02 【问题描述】:

我已按照以下步骤操作

我的 cordova 应用程序版本是 3.9.2

按照本教程 https://www.raywenderlich.com/32960/apple-push-notification-services-in-ios-6-tutorial-part-1

我已生成临时文件、证书和 pem 文件。 之后开始安装推送通知插件

    安装推送通知插件

    cordova plugin add phonegap-plugin-push --variable SENDER_ID="JYOSHNASENDER"
    

安装插件时,显示警告消息。

Plugin doesn't support this project's cordova-ios version. cordova-ios: 3.9.2, failed version requirement: >=4.0.0 Skipping 'phonegap-plugin-push' for ios

所以,根据这个消息,我已经通过这个命令升级了我的平台

cordova platform update ios@ 4.0.1

在此之后,当我尝试在设备上构建应用程序时,MainViewController.h 文件中出现错误

No visible @interface for 'CDVViewController' declares the selector 'webviewdidiFinishLoad:'

注意: 我需要为cordova ios项目添加didReceiveRemoteNotification方法吗?

请告诉我如何解决问题。

【问题讨论】:

能否分享一下出现此错误的代码? 对于同样的问题,我已经注释了代码.. WebViewDidFinishLoadMethod 然后成功构建了应用程序。但是我遇到了另一个问题,当服务器向我的应用程序发送通知时,我无法收到通知server 端没有显示任何错误。 .pem文件生成成功 【参考方案1】:

有一个已知的 cordova-ios 问题,其中cordova platform update 命令在幕后无法正常工作,然后当您构建更新的项目时,您将收到No visible @interface for 'CDVViewController' declares the selector 'webviewdidiFinishLoad:' 错误(有关详细信息,请参阅此处:https://issues.apache.org/jira/browse/CB-9254) .解决方法是删除 ios 平台,然后将其添加回来,而不是就地更新。所以:

cordova platform rm ios
cordova platform add ios@4.0.1

然后添加插件:

cordova plugin add phonegap-plugin-push --variable SENDER_ID="JYOSHNASENDER"

【讨论】:

非常感谢!!我一直在寻找这个解决方案 4 小时:D 嗨,迈克,我已将 phonegap-plugin-push 用于 android 及其工作。现在我想为应用程序的 ios 版本使用相同的插件。我已经创建了证书和 .pem 文件。但我不知道在哪里使用那个 .pem 文件。能否请解释使用 GCM 使其在 ios 中工作的步骤。?

以上是关于如何在 Cordova iOS 应用程序中实现推送通知的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Quickblox 在 Cordova 应用程序中实现推送通知支持?

如何使用php json数组在带有angularjs的cordova中实现推送通知

Phonegap ios推送通知

如何在 cordova-ios 6.1.0 中实现原生 WKURLSchemeHandler

科尔多瓦 3.3 中的用户推送通知

iOS Cordova PushPlugin