在 ios 中,如果我在提示时授权或拒绝位置服务,则会立即调用一个委托(delegate)方法:
- (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status;
我想知道是否存在类似的方法来接受或拒绝推送通知。我知道如何提示以及如何测试状态,但不知道如何在用户接受或拒绝通知后立即执行某些操作。
我想提示用户推送通知,并根据他们的响应执行某些操作,例如以一种或另一种方式重定向 ViewController。
最佳答案
我对此进行了大量研究,不幸的是,该接受/拒绝选项的状态似乎完全不透明。
您可以确定用户没有启用推送通知(使用 UIApplication 的 isRegisteredForRemoteNotifications
),但不能确定它未启用的原因(即确定它是“从不提示”还是“提示然后拒绝或稍后禁用”状态)。
我强烈怀疑这是 Apple 有意识的设计决定,目的是让开发人员更难追捕选择退出的用户。不过,拥有这些信息是有正当理由的,所以我希望他们将来重新考虑。
我希望这有帮助。
关于ios,推送通知授权回调有变化吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28177812/