ios - 如何以编程方式激活 ios 通知设置?

标签 ios settings apple-push-notifications

我的应用程序注册这样的通知:

[[UIApplication sharedApplication] registerForRemoteNotificationTypes:UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert];

但如果我手动转到通知设置,禁用所有内容(通知中心、警报、声音、角标(Badge)),然后卸载并重新安装该应用程序(或者只是重新安装而不先卸载),我的 iPhone 会保留旧设置。如何在重新安装时强制重新激活这些设置?

最佳答案

你不能。在 iOS 5.0 中,有一个未记录的功能可以通过 url 方案从您的应用程序打开通知设置页面(或任何设置页面)。然后你可以要求用户启用通知。但是它在 5.1 中被删除了,无论如何可能不会被 Apple 接受。

registerForRemoteNotificationTypes 仅在您第一次调用您的应用程序时询问用户他是否希望接受来自您的应用程序的通知。如果稍后用户更改通知设置,则不会再询问。您可以使用 enabledRemoteNotificationTypes 检查您的应用程序是否启用了通知,如果需要,您可以自己警告用户,但用户必须手动转到设置并重新启用它们。您不能再从您的应用程序中执行此操作。

从 iOS 8.0 开始更新

从 iOS 8.0 开始,Apple 恢复了打开您应用的“系统设置”页面的可能性:

NSURL* settingsURL = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
[[UIApplication sharedApplication] openURL:settingsURL];

关于ios - 如何以编程方式激活 ios 通知设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10026375/

相关文章:

android - 偏好点击

java - 在物理手机上按下设置/菜单按钮时创建菜单/选项

ios - 什么是苹果iOS开发证书和APNs Development iOS

ios - nsinternalinconsistencyexception 无法加载 xamarin 包中的 nib

c++ - 如何删除在 C++ 中使用 ExtAudioFileCreateWithURL 创建的文件?

ios - 一个轴上的 Unity (iOS) 设备角度

c# - 有什么方法可以使用新的 http/2 api 在 C# 中发送推送通知吗?

ios - Swift:如何优化我编写的用于在裁剪后调整图像大小的代码?

Javascript 在浏览器关闭时删除 cookie,即使它设置为在启动时恢复 cookie

java - 通过Java实现Apple推送通知服务