首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

iPhone registerForRemoteNotificationTypes不会生成错误,但不会触发提供设备令牌的委托

iPhone registerForRemoteNotificationTypes 不会生成错误,但不会触发提供设备令牌的委托

在 iOS 开发中,registerForRemoteNotificationTypes 方法用于注册设备以便接收来自远程通知中心的提醒。然而,在某些情况下,这个方法可能不会触发提供设备令牌的委托。

原因

在 iOS 13 及以后的版本中,苹果引入了“隐私中继”(Privacy Relay)机制,用于保护用户的隐私。如果应用程序想要注册接收远程通知,需要提供一个设备令牌,用以表明其身份。但在某些情况下,即使应用提供了正确的令牌,系统仍可能不会向应用发送通知。

解决方法

  1. 检查设备系统版本:确保您的目标设备系统版本支持远程通知,并检查其是否与您的应用兼容。
  2. 检查应用设置:检查您的应用设置,确保通知权限已启用。
  3. 提供正确的设备令牌:确保您提供正确的设备令牌,格式应符合苹果的规范。

结论

虽然 registerForRemoteNotificationTypes 不会产生错误,但它不能确保应用程序接收远程通知。要解决这个问题,您需要检查设备系统版本、应用设置以及提供正确的设备令牌。如果问题依然存在,建议您查阅 Apple 的官方文档或联系 Apple Developer 技术支持团队。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

多因子类身份认证

密码作为我们平时最常使用的用户身份验证方式有其便捷性,但是仔细思考你也不难发现其中存在着较多的安全问题。首先我们的密码是由用户自我定义设置的,期间不排除用户设置弱口令密码或者使用键盘布局的脆弱密码(当然部分考虑安全的系统会制定对应的密码策略对其进行限制),其次即便我们使用了极为复杂的密码,也不能完全规避"社工钓鱼"和"中间人"攻击等威胁,攻击者可以通过脱浏览器端的凭据信息等方式获取用户的密码,再者就是用户都有一个特征就是"惰性",很多用户在多个网站可能会使用同一个登录密码,故此攻击者可以通过找寻被泄露的账户密码获取到真实的账户密码信息并实现登录操作,基于以上多个风险层面,我们接下来对用户的身份认证进行简易的探讨并结合业务、测评等维度给出关联的安全设计

01
  • iOS远程消息推送

    如上是iOS消息推送的详细流程图,主要分为几个过程: (1)App启动过程中,使用UIApplication::registerForRemoteNotificationTypes函数与苹果的APNS(Apple Push Notification Service,苹果消息推送服务器)通信,发出注册远程推送的申请。 (2)若注册成功,APNs 会返回一个设备的标识符即 DeviceToken 给 App,回调函数application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken 会被触发,App可以得到deviceToken。 (3)App获取到DeviceToken后,将DeviceToken发送给自己的服务端。 (4)服务端拿到DeviceToken以后,当有消息要推送时,服务端使用证书文件,向苹果的APNS服务器发起一个SSL连接。连接成功之后,发送一段JSON串,该JSON串包含推送消息的类型及内容。 (5)苹果的APNS服务器得到推送消息(JSON串)以后,向App发送通知消息,使得App的回调函数application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary *)userInfo被调用,App从userInfo中即可得到推送消息的内容。

    02
    领券