我正在创建一个应用程序,允许用户注销应用程序并以不同的用户身份登录(如果他们愿意的话)。新用户登录后,有没有办法从Apple获取新的设备令牌?有没有办法强制拨打didRegisterForRemoteNotificationsWithDeviceToken
方法?获取新Apple设备令牌?
回答
不,您不能请求新的设备令牌。它们会不时失效,只有这样你才能得到一个新的(或者如果你有一个不同的bundle id的应用程序,令牌将会不同)。
创建一个函数来处理didRegister并从didRegisterForRemoteNotificationsWithDeviceToken中调用该函数。然后在需要强制呼叫时使用该功能。
由于用户正在登录,因此每次有人登录并将用户关联到服务器端的令牌时,都会将带有设备令牌的信息传递到服务器。
没有办法获得不同的设备令牌。用户注销时需要从后端删除令牌。
我不确定它是如何在iOS7及更高版本中运行的,但在iOS7之前,同一设备上的所有应用程序都会得到相同的设备令牌,因此您所要求的是不可能的。从iOS7开始,每个应用程序都有自己的设备令牌,但我不确定该令牌是否可以在连续注册时更改。
您可以通过致电registerForRemoteNotificationTypes
强制呼叫didRegisterForRemoteNotificationsWithDeviceToken
,但通常您会得到相同的设备令牌。
如果目标是将通知与特定用户相关联,那么从iOS 10起,您可以尝试实施NotificationService扩展程序,以仅过滤与当前通过身份验证的用户关联的通知。虽然同一设备上的多个用户将与服务器上的相同设备令牌相关联,但客户端将只显示当前用户的通知 - 假设一次只有一个用户可以登录。
此方法还允许发出不需要验证的通知 - 只需通过未更改的通知即可。
如上所述,您可以通过显式调用UIApplication.shared.registerForRemoteNotification(Swift 3+)在用户登录后强制执行请求 - 响应令牌更新。然后将该用户+设备令牌组合发送到您的应用程序服务器以供使用。
- 1. Apple APNS设备令牌
- 2. APNS - 获取设备令牌
- 3. 获取设备令牌?
- 4. 获取Android设备令牌
- 5. 获取示例设备令牌
- 6. 获取分配设备令牌
- 7. 如何获取mac的设备令牌?
- 8. 快速获取设备令牌
- 9. 如何获取设备令牌?
- 10. 如何获取所有注册设备(APNS)的设备令牌?
- 11. 如何从设备获取设备令牌?
- 12. 没有获取APNS设备的设备令牌?
- 13. 设备令牌NULL
- 14. 获取null刷新令牌
- 15. 获取OAuth2刷新令牌
- 16. Box.com获取刷新令牌
- 17. 获取刷新令牌FOSOAuthServerBundle
- 18. 未设置设备令牌
- 19. 新设备令牌的APNS证书iOS
- 20. 在Apple推送通知中发送设备令牌
- 21. 从Apple APNS接收设备令牌的时间
- 22. 设备令牌和UDID的Apple推送通知
- 23. Apple推送通知服务设备令牌
- 24. 如何生成用于Apple推送通知的设备令牌?
- 25. 如何获取设备令牌为iphone推通知下特设
- 26. 如何获得设备令牌
- 27. 使用刷新令牌获取新的访问令牌adal js
- 28. 在设备注册推送通知后,iOS获取设备令牌?
- 29. 未收到设备令牌
- 30. 请求设备令牌
每次有人登录时,将新令牌传递到服务器是不够的。当用户注销时,您还需要从服务器删除令牌。 – ken