Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/95.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 应用程序:DidRegisterForRemotionTificationsWithDeviceToken:始终调用_Ios_Push Notification - Fatal编程技术网

Ios 应用程序:DidRegisterForRemotionTificationsWithDeviceToken:始终调用

Ios 应用程序:DidRegisterForRemotionTificationsWithDeviceToken:始终调用,ios,push-notification,Ios,Push Notification,我在这里看到了很多关于这个方法从未被调用的问题,但是我看到了相反的行为 当我第一次安装测试应用程序时,除了注册推送通知的调用之外,没有其他代码,我会在设备上收到接受或拒绝的弹出窗口。在选择任一方法之前,将调用应用程序:didRegisterForRemotionTificationsWithDeviceToken:方法。此外,即使我选择不接收通知,每次启动应用程序时都会调用didRegister方法 令牌是有效的,但当我尝试向该设备发送通知时,我没有收到通知,这是有意义的。但是,如果我在设置应用

我在这里看到了很多关于这个方法从未被调用的问题,但是我看到了相反的行为

当我第一次安装测试应用程序时,除了注册推送通知的调用之外,没有其他代码,我会在设备上收到接受或拒绝的弹出窗口。在选择任一方法之前,将调用
应用程序:didRegisterForRemotionTificationsWithDeviceToken:
方法。此外,即使我选择不接收通知,每次启动应用程序时都会调用didRegister方法

令牌是有效的,但当我尝试向该设备发送通知时,我没有收到通知,这是有意义的。但是,如果我在设置应用程序中翻转设置,令牌确实会变为有效。我猜(我现在不能做太多其他事情)不管用户的偏好如何,您都会收到一个令牌,因此在他们在设置应用程序中更改令牌的情况下,您可以立即使用它。我觉得这不是以前的工作方式,但也许我只是在想象

另外,作为补充说明,即使在我卸载并重新安装之后,也不会再次提示我接受或拒绝通知。有没有办法解决这个问题?

应该是这样的。文档明确指出,您不能将令牌保存到某个持久性存储器中。相反,你应该将它保存在RAM中,并在每次应用程序启动时检索它


2.)不,清除它的唯一方法是重置设备。

你是说每次都应该调用它,即使它们拒绝?这就是我不确定的,也找不到任何文档。我不是为了实际使用而保存它,我只是开始抓住它,当我意识到它每次都被调用以确定它是否是有效的令牌时。只是为了测试这个问题。如果他们拒绝,你就得不到代币。相反,您将收到一个错误如果用户在接受推送通知后停用推送通知,您保留推送令牌,但它不再工作。我知道这样做有点糟糕;)我认为有一些方法可以检查哪些类型的推送通知已启用(例如声音、徽章等),如果未启用任何内容,则您知道用户已在设置中禁用它。卸载应用程序时,设备令牌无效。下次尝试使用此令牌发送时,将生成一个错误并将其附加到某个列表中。要获取此列表,您需要获取apns反馈url,以获取对应于已卸载应用程序的设备令牌列表。对于您的第一条评论,这不是我看到的,这就是我的问题所在。我谢绝了,但仍然收到了didRegister事件。