在ios中,如果我在提示时授权或拒绝位置服务,则会立即调用委托方法:
- (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status;
我想知道是否存在接受或拒绝推送通知的类似方法。我知道如何提示,以及如何测试状态,但不知道如何在用户接受或拒绝通知后立即执行某些操作。
我想提示用户推送通知,并根据他们的响应执行某项操作,例如以某种方式重定向ViewController。
答案 0 :(得分:0)
我已就此进行了大量研究 - 不幸的是 - 接受/拒绝选项的状态似乎完全不透明。
您可以确定用户没有启用推送通知(使用UIApplication的isRegisteredForRemoteNotifications
),但为什么未启用推送通知(即确定它是否为“从不”提示“或”提示然后拒绝或稍后禁用“状态”。
我强烈怀疑这是苹果公司有意识地做出的设计决定,让开发人员更难以追捕那些选择退出的用户。但是,有正当理由获得这些信息,所以我希望将来他们会重新考虑。
我希望这会有所帮助。
答案 1 :(得分:0)
你不能这样做,但每次应用程序进入前台时你都可以检查。这可以解决您在用户打开应用程序时采取行动的情况。
如果你想在后台执行此操作(例如,如果你想报告你的服务器用户已被禁用通知),你可以随时运行一些后台任务(如“后台获取”)来检查状态。