Sar*_*ith 3 simulator apple-push-notifications ios ios-simulator
最近苹果也在模拟器中添加了推送通知。模拟器中未收到我现有的应用程序通知。
如何在模拟器中模拟推送通知?
模拟器支持模拟远程推送通知,包括后台内容获取通知。
参考:https ://developer.apple.com/documentation/xcode_release_notes/xcode_11_4_beta_release_notes
小智 6
你是对的。使用 Xcode 11.4:
Simulator 支持模拟远程推送通知,包括后台内容获取通知。(xcode 11.4 发行说明)
您只需要将有效的 APNs 文件拖放到您的模拟器上。
但是,如果有人问为什么未调用 UNNotificationServiceExtension 的实例方法 didReceive(_:withContentHandler:) ,那是因为"mutable-content"
未考虑该属性。
通知服务扩展在模拟推送通知中不起作用。不遵守可变内容键。(55822721)(xcode 11.4 发行说明)
总的来说,这意味着平滑的开发用例,即使用模拟器在本地机器上轻松测试丰富的推送通知将不起作用!
模拟器支持模拟远程推送通知,包括后台内容获取通知...
苹果没有向模拟器添加推送通知,而是添加了对模拟推送通知的支持。所以这意味着您无法接收任何推送通知,您只能模拟它们。
您可以在模拟器部分下的Xcode Beta 发行说明中阅读有关此内容的更多信息。
要测试远程推送,只需将 APNS 文件拖到目标模拟器上即可。此方法要求有效负载包含“Simulator Target Bundle”键。否则,您将收到此错误消息:
无效的推送通知:文件不包含有效的 JSON 负载或缺少模拟器目标包密钥。
因此,将“Simulator Target Bundle”添加到您的有效负载文件中:
{
"aps" : {
"alert" : {
"title" : “Namaste”,
"body" : “This is iOS development notification test“
},
},
"Simulator Target Bundle": "com.sarunw.example-xcode-11-4"
}
Run Code Online (Sandbox Code Playgroud)
终端中的以下 simctl 命令将发送通知,并且由于命令中包含包标识符,因此文件中不需要“Simulator Target Bundle”:
xcrun simctl push <device> <bundle-identifier> <path-to-apns-file>
Run Code Online (Sandbox Code Playgroud)
(<device>
如果您只有一台设备在模拟器中运行,则可以“启动”。否则使用xcrun simctl list
查看它们的列表,并复制要发送到的设备的 UUID。)
归档时间: |
|
查看次数: |
5292 次 |
最近记录: |