irpas技术客

苹果 iOS推送 APNS(本人亲测总结)_星星月亮0_ios apns

网络 2180

文章目录 1.静默推送(发透传消息)总是收不到(iOS静默通知(iOS Silent Notification):需要进一步验证2.推送的相关方法3.模拟推送的工具3.1 在appstore上搜一个app3.2 用极光推送 4.推送报错4.1 BadDeviceToken4.2 DeviceTokenNotForTopic(TopicDisallowed)4.3 MissingProviderToken4.4 参考博客

1.静默推送(发透传消息)总是收不到(iOS静默通知(iOS Silent Notification):需要进一步验证 用极光测试,极光有静默推送的开关,静默推送也总是收不到 用下面的消息模板可以收到,但是只有app在前台的时候可以收到,APP在后台的时候收不到

// B. This works { aps: { content-available: 1, sound:“default” } }

参考博客: iOS 7中的静默推送通知不起作用

2.推送的相关方法

这篇博客比较全:iOS普通推送以及静默推送奇怪的注意事项 - 简书

下面两个方法会被调用,上面静默推送模板发的消息也是app在前台时,在方法一中收到 // App在前台时收到普通推送 方法一 - (void)userNotificationCenter:(UNUserNotificationCenter*)center willPresentNotification:(UNNotification*)notification withCompletionHandler:(void(^)(UNNotificationPresentationOptions))completionHandler { NSDictionary* userInfo = notification.request.content.userInfo; NSLog(@"前台收到普通推送: %@", userInfo); } // App在后台时点击普通推送栏 方法二 - (void)userNotificationCenter:(UNUserNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void(^)(void))completionHandler { NSDictionary* userInfo = response.notification.request.content.userInfo; NSLog(@"后台收到普通推送: %@", userInfo); completionHandler(); } 下面所谓静默推送的方法,我还没有在后台收到过静默推送的方法(iOS15,xcode 13) // App在任何状态下收到静默推送 - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler { NSLog(@"收到静默推送: %@", userInfo); 如果不设置delegate,普通推送也会走didReceiveRemoteNotification(本人亲测,这句话是正确的) // ??注意: 如果不设置delegate,普通推送也会走didReceiveRemoteNotification [[UNUserNotificationCenter currentNotificationCenter] setDelegate:self]; 3.模拟推送的工具 3.1 在appstore上搜一个app 在appstore上搜了一个,要勾上Sandbox才可以推送成功(本人亲测有效)第一个APSs-Tool,本人测试,没有推送成功过 3.2 用极光推送

极光推送官网开发文档

4.推送报错

iOS推送APNs - 腾讯云开发者社区

4.1 BadDeviceToken

debug环境下是向开发环境的APNs服务器申请DeviceToken,而release环境是向生产环境的APNs服务器申请的。如果环境不匹配,则会出现Bad deviceToken错误

如果我把token删除最后面的一个字符,会报BadDeviceToken

4.2 DeviceTokenNotForTopic(TopicDisallowed) bundle id不对,会报下面的错误 4.3 MissingProviderToken

这个我弄了半天,后面发现我给到后台的是开发证书,而不是push推送证书

4.4 参考博客

苹果APNS push推送错误定位/错误码 - 简书


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #iOS #APNs #苹果 #推送