在ios中,如果我在提示时授权或拒绝Location Services,则会立即调用一个委托方法:
- (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status;我想知道是否有类似的方法来接受或拒绝推送通知。我知道如何提示,以及如何测试状态,但不知道如何在用户接受或拒绝通知后立即执行某些操作。
我想提示用户推送通知,并根据他们的响应执行特定的操作,例如以某种方式重定向ViewController。
发布于 2015-02-17 17:03:24
我对此做了大量的研究,不幸的是,接受/拒绝选项的状态似乎完全不透明。
您可以确定用户没有启用推送通知(使用ie应用程序的isRegisteredForRemoteNotifications),但不能确定用户没有启用推送通知的原因(即。确定它是“从未提示”还是“提示,然后拒绝或稍后禁用”状态)。
我强烈怀疑这是苹果的一个有意识的设计决定,以使开发人员更难追逐已选择退出的用户。然而,拥有这些信息是有正当理由的,所以我希望在未来他们会重新考虑。
我希望这能帮到你。
发布于 2016-12-07 18:26:19
你不能这样做,但你可以在每次应用程序进入前台时进行检查。这将解决你的情况,当你可以在用户打开应用程序的时刻采取行动。
如果您想在后台执行此操作(例如,如果您想要报告您的服务器用户已被禁用的通知),您可以始终运行一些后台任务(如“后台获取”)来检查状态。
https://stackoverflow.com/questions/28177812
复制相似问题