如何解决独立Watchkitapp APNS推送通知已成功发送,但在Apple Watch中未收到通知
我已在XCode中创建了一个独立的watchkitapp,将其安装在apple watch中,并成功从Pusher应用程序(也在node-apn中)成功发送了推送通知而没有错误,但通知未到达应用程序。 (尝试了另一个适用于iOS的应用程序,并在iOS应用程序中成功接收到远程推送通知)
这些是我采取的步骤
-
在我的watchkitapp中,我执行了WKExtension.shared()。registerForRemoteNotifications()并获取了设备令牌
-
UNUserNotificationCenter.current()。requestAuthorization,并允许在Apple Watch上进行推送通知。当然,我将UNUserNotificationCenter.current()。delegate设置为InterfaceController(我尝试了本地通知,并且本地通知在手表上正常显示)
-
在XCode watchkitapp.watchkitextension上,我在功能上添加了推送通知
-
在Apple Developer页面中,我创建了镜像watchkitapp捆绑包(而不是watchkitextension捆绑包)的应用程序ID。在我的情况下,苹果自动在服务器中创建了应用ID,但我删除并重新创建了它以确保
-
检查了Apple Push Notification服务并生成了开发SSL证书
-
下载了开发SSL证书并安装在钥匙串中
-
打开Pusher应用程序,然后从列表中选择已安装的Development SSL Cert。跑了苹果手表应用程序并获得了令牌ID ...发送了有效载荷,并说有效载荷已发送
-
试图重新启动mac,iphone,Apple Watch,取消配对Apple Watch,重新安装应用程序,但结果是相同的……推送已发送但在Apple Watch中未收到
任何人都可以帮助我如何解决此问题?
解决方法
最后,我成功了。我使用 node-apn 从服务器发送邮件。
以下是值得注意的事情:
-
在Apple Developer页面中创建watchkitapp捆绑软件的应用程序ID
-
安装以下最新版本:node-apn,
“依赖项”:{ “ apn”:“ git + https://github.com/node-apn/node-apn.git#3.0.0”, [...] }
-
应设置 apns-push-type
notification.pushType (向运行iOS 13和更高版本或watchOS 6和更高版本的设备传递通知时需要。在早期系统版本上被忽略。)
通知的类型。此标头的值是警报或背景。在通知的传递显示警报,播放声音或标记应用程序图标时指定警报。为不与用户交互的静默通知指定背景。
此标头的值必须准确反映通知的有效内容。如果不匹配,或者在所需的系统上缺少标头,则APN可能会延迟通知的发送或将其完全丢弃。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。