【发布时间】:2016-05-11 01:37:48
【问题描述】:
我正在开发一个带有推送通知的应用, 我想延迟推送通知权限弹出的出现,直到用户第三次进入我的应用程序之后。所以他应该对我的应用程序感兴趣,然后我想征求他的同意。 我有办法吗? 我搜索了很多方法,比如这里: Reset push notification settings for app 但我没有得到任何有用的答案。 请帮忙。 谢谢
【问题讨论】:
我正在开发一个带有推送通知的应用, 我想延迟推送通知权限弹出的出现,直到用户第三次进入我的应用程序之后。所以他应该对我的应用程序感兴趣,然后我想征求他的同意。 我有办法吗? 我搜索了很多方法,比如这里: Reset push notification settings for app 但我没有得到任何有用的答案。 请帮忙。 谢谢
【问题讨论】:
维护一个用户默认值,它在 "- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {}" 方法
如果userDefault大于3,则寻求Notification的许可
if NSUserDefaults.standardUserDefaults().objectForKey("launchCount")?.integerValue >= 3{
if UIApplication.sharedApplication().respondsToSelector("isRegisteredForRemoteNotifications") {
UIApplication.sharedApplication().registerUserNotificationSettings(
UIUserNotificationSettings(
forTypes: [.Alert, .Badge, .Sound],
categories: nil))
UIApplication.sharedApplication().registerForRemoteNotifications()
}
}
【讨论】:
使用 UIApplication 的registerForRemoteNotifications 方法。
https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIApplication_Class/#//apple_ref/occ/instm/UIApplication/registerForRemoteNotifications
您是否使用任何第三方推送通知 SDK?如果是这样,那么通常该 SDK 中的方法将进行注册并将令牌存储在其数据库中。
您唯一需要控制的是延迟用于注册远程通知的呼叫
【讨论】: