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

Ale*_*xis 2 settings apple-push-notifications ios

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

[[UIApplication sharedApplication] registerForRemoteNotificationTypes:UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert];
Run Code Online (Sandbox Code Playgroud)

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

MrT*_*rTJ 18

你不能.在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];
Run Code Online (Sandbox Code Playgroud)