我的应用使用Firebase。我正在尝试向在模拟器中运行的应用程序发送推送通知。当我在iOS 10 Simulator中运行应用程序时,它成功生成了InstanceID令牌但显示警告
模拟器中不支持通知。
我在stackoverflow上的某处读到可以在iOS 10模拟器上发送推送通知。这是真的吗?
答案 0 :(得分:5)
您无法在模拟器中获取推送通知。但是,您可以通过使用通知字典制作按钮或任何调用应用程序(_应用程序:UIApplication,didReceiveRemoteNotification userInfo:[AnyHashable:Any])来模拟获取推送通知。这有助于在部署到设备之前测试其余逻辑是否正常工作,以测试推送的最终格式是否符合预期。
答案 1 :(得分:4)
两件事:
您无法在模拟器中测试推送通知。因此,您只能在iPhone设备上进行测试。其他信息:如果您想在设备中本地测试推送通知,请尝试使用Test push notification
你说你听说过某个地方“可以在iOS 10模拟器上发送推送通知”。 这不是真的,即使应用程序位于前台,您也可以在iOS 10中查看本地通知。使用iOS 10支持的以下委托方法“willPresentNotification”。您可以在模拟器中测试。
答案 2 :(得分:1)
现在有可能!!!
Xcode 11.4 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"
}
在终端中执行simctl命令将有助于发送通知:
xcrun simctl push <device> <bundle-identifier> <path-to-apns-file>
答案 3 :(得分:0)
从 Xcode 11.4 Beta 开始,您可以在iOS模拟器上测试推送通知。 The Xcode 11.4 Beta release notes
模拟器支持模拟远程推送通知,包括后台内容获取通知。 在模拟器中,将APNs文件拖放到目标模拟器上。该文件必须是带有有效Apple Push Notification的JSON文件 服务有效载荷,包括“ aps”键。它还必须包含顶级“ Simulator Target Bundle”,其字符串值与目标应用程序的bundle标识符匹配。
答案 4 :(得分:0)
现在可以在模拟器中接收推送通知(带有声音和徽章计数)