我找不到任何关于此的内容,我从未对推送通知做过任何事情(但我清楚地知道它们是如何工作的)。在小牛队,现在OS X可以从网站等各种东西接收推送通知,iPhone模拟器可以接收推送通知吗?我从2013年中期找到了很多答案,早些时候说“不”,但所有这些都已经过时了,因为最近Mavericks刚推出了新的推送功能。
我即将开始为应该使用推送通知的学校项目开发应用程序,除非我想要便宜并且只是轮询服务器。我知道你需要一个iOS开发者帐户来使用推送通知,但是如果我可以在我的计算机上进行测试,它会让我的生活变得更轻松。
答案 0 :(得分:41)
iOS 8和Xcode 6确实为推送通知添加了一些额外的集成。如果您选择iPhone 6或iPhone 6 Plus模拟器,您的应用程序现在将显示在具有全功能通知设置屏幕的设置下(请参阅附件),并将在首次请求推送通知权限时显示应用程序模式。这仅适用于iPhone 6和iPhone 6 Plus模拟器。
但是,在iOS 8中,您仍然会在控制台中收到消息,因为“模拟器中不支持远程通知”,因此您只能使用设备。
答案 1 :(得分:21)
不,在模拟器中仍然没有支持推送通知的API。你必须使用一个设备。
答案 2 :(得分:18)
即使iPhone 6和iPhone 6+模拟器设置了推送通知,甚至显示推送通知提示,尝试从模拟器注册推送通知仍然会失败Error Domain=NSCocoaErrorDomain Code=3010 "remote notifications are not supported in the simulator" UserInfo=0x7fc786b4af90 {NSLocalizedDescription=remote notifications are not supported in the simulator}
。所以,你最好的选择仍然是使用设备。
答案 3 :(得分:9)
是啊!随着 XCode 11.4 的发布,现在也可以在Simulator中接收推送通知。 苹果的最新版本说,
模拟器支持模拟远程推送通知,包括 后台内容获取通知。
在“模拟器”中,将APNs文件拖放到目标模拟器上。 该文件必须是带有有效Apple Push Notification的JSON文件 服务有效负载,包括“ aps”键。
它还必须包含一个顶级的“模拟器目标捆绑包”,其中包含 与目标应用程序的包标识符匹配的字符串值。
参考链接:https://developer.apple.com/documentation/xcode_release_notes/xcode_11_4_beta_release_notes
示例有效负载文件,
{
"Simulator Target Bundle": "com.yourOrganization.appName",
"aps": {
"alert": "This is a test notification!",
"badge": 5,
"sound": "default"
}
}
@note:在上述有效负载的“模拟器目标捆绑包” 中提及应用程序的捆绑包标识符。
将上述json文件拖放到目标模拟器上将显示通知并设置徽章。
答案 4 :(得分:7)
如果您想在iOS模拟器中模拟推送通知,可以使用此库:https://github.com/acoomans/SimulatorRemoteNotifications
答案 5 :(得分:5)
日志:推送通知现在因旧的难以忘怀的诗歌而失败:
remote.
notifications are not.
supported in the simulator.
我现在质疑自己和我的理智。这个我一直希望的功能,并且在我手中,或者我想到了一会儿。这一切都只是一场梦吗?我们中的任何人真的在这里吗?
<淡出...>
从iOS10测试版(XCode版本8.0 beta(8S128d))开始,模拟器似乎正在获得推送通知。请注意,虽然在iOS10之前,设备可能会收到本地通知,但他们没有收到推送通知。
我没有任何关于此的官方消息来源,只是传闻,依赖于曾经失败的推送通知的功能现在在iPhone 5,5s,6,6 +模拟器上取得了成功。
我还确认我们正在点击AppDelegate中的注册块。
- (void)application:(UIApplication *)application didRegisterUserNotificationSettings:(UIUserNotificationSettings *)notificationSettings {
NSLog(@"Successfully registered!");
doSomething(notificationSettings);
}
答案 6 :(得分:3)
期待在iOS 10发布时在模拟器中使用远程通知。
与此同时,我使用Xcode命令行来测试通知行为:
p [((CustomAppDelegateClass *)((UIApplication *)[UIApplication sharedApplication]).delegate) application:[UIApplication sharedApplication] didReceiveRemoteNotification:@{@"aps": @{@"alert": @"Alert Message"}, @"info": @{@"object": @"value"}}];
答案 7 :(得分:1)
现在可以在模拟器中接收推送通知(带有声音和徽章计数)
步骤1:-创建项目(Xcode 11.4 beta)
第2步:-导入UserNotifications和registerForPushNotifications
第3步:-如下创建JSON文件(payload.apns)
{
"Simulator Target Bundle": "metiz.DemoSimPushnotification",
"aps": {
"title": "Xcode 11.4 Beta Update",
"alert": "Push notification in simulator - take a look",
"sound": "default",
"badge": 1
}
}
步骤4:-打开终端写入命令$ xcrun simctl push com.example.myapp ExamplePush.apns”
<设备> 将会被设备标识符代替。
com.example.myapp ”将被您项目的包标识符替换
ExamplePush.apns ”将替换为我们的apns文件的文件名。
像这样:-
$ xcrun simctl push 4F19A097-DAE2-4298-99EB-23D4F2DBAF97 metiz.DemoSimPushnotification负载.apns
现在,按Enter键!看魔术!
参考链接:-
https://www.metizsoft.com/blog/testing-push-notification-on-ios-simulator