Ios APN设备令牌是否依赖于推送通知权限
如果用户在首次启动应用程序时拒绝推送通知权限,应用程序是否会收到APN设备令牌?否,您需要具有用户权限才能获取令牌。重要编辑:此回答不正确。请看下面的答案。我不能删除,因为这是一个公认的答案 用户必须授予您获取设备令牌的权限 如果用户给予许可,Ios APN设备令牌是否依赖于推送通知权限,ios,swift,apple-push-notifications,Ios,Swift,Apple Push Notifications,如果用户在首次启动应用程序时拒绝推送通知权限,应用程序是否会收到APN设备令牌?否,您需要具有用户权限才能获取令牌。重要编辑:此回答不正确。请看下面的答案。我不能删除,因为这是一个公认的答案 用户必须授予您获取设备令牌的权限 如果用户给予许可,-(void)application:(UIApplication*)application didRegisterForRemotionTificationswithDeviceToken:(NSData*)deviceToken方法在AppDelega
-(void)application:(UIApplication*)application didRegisterForRemotionTificationswithDeviceToken:(NSData*)deviceToken
方法在AppDelegate
中执行,您将获得设备令牌
如果用户拒绝授予权限,
-(void)application:(UIApplication*)application未能注册远程通知。将执行错误:(NSError*)error
方法,您将只获得相应的NSError
对象。有一个非常重要的异常,您应该注意。如果启用后台模式“远程通知”,则无论用户对权限问题的响应如何,都将从iOS获得令牌。您将能够使用此令牌向应用程序发送静默推送通知(在json的“aps”部分中,将content available key设置为1的推送)
静默通知意味着,如果你的应用程序位于前台,你将在DidReceiveMemoteNotification中获得成功,如果你的应用程序位于后台,它也将(在后台)获得对同一委托函数的调用。
但是-这对用户来说是不可见的。因此,它仍然提供了一种与应用程序通信的方式,尽管这是一种有限的方式。这不准确。你仍然可以通过无声推送获得令牌。请看下面talshahar的回答。这是正确的答案。我已经通过实验验证了这一点,并且正在我自己的应用程序中使用此方法。订阅现在,无论用户接受还是拒绝,都会使用设备令牌调用vent,但它仍会等待调用,直到用户做出选择。此答案是正确的。我正在删除我的答案以避免误导,对此表示抱歉