我一直在尝试制作一个弹出窗口,询问用户是否要在打开我的应用程序多次(比如 5 次)后对我的应用程序进行评分,选项为"is"(将它们发送到应用程序)链接),“不”(丢弃)和“稍后提醒我”(在其他 5 或 6 次中再次询问)任何帮助将不胜感激,因为我在 obj-c 中做了类似的事情,但在 swift 中遇到了一些麻烦,谢谢!
最佳答案
NSUserDefault + AlertAction 怎么样?也许是这样的:
let userDefault = NSUserDefaults.standardUserDefaults()
let userDefaultOpenString = "AppOpenCounter"
let appStoreURLString = "itms://itunes.apple.com/en/your_url"
let countDetectorInt = 5
var openCounterInt = userDefault.integerForKey(userDefaultOpenString)
openCounterInt += 1
if openCounterInt == countDetectorInt {
// Create an alertController...
let alertController = UIAlertController(title: "Rate The App", message: "How about rate this app ?", preferredStyle: UIAlertControllerStyle.Alert)
// Add Yes Action
alertController.addAction(UIAlertAction(title: "Yes", style: .Default, handler: { action in
userDefault.setInteger(0, forKey: userDefaultOpenString)
userDefault.synchronize()
if let url = NSURL(string: appStoreURLString) {
UIApplication.sharedApplication().openURL(url)
}
}))
//Add Not Now Action, so don't reset the userDefault Counter
alertController.addAction(UIAlertAction(title: "Not now", style: .Default, handler: nil))
//Add No Action
alertController.addAction(UIAlertAction(title: "No", style: .Default, handler: { action in
userDefault.setInteger(0, forKey: userDefaultOpenString)
userDefault.synchronize()
}))
}
userDefault.setInteger(openCounterInt, forKey: userDefaultOpenString)
userDefault.synchronize()
编辑
WOOPS,忘记同步 UserDefault 字典;)
如果你使用navigationController,或者任何你想要的时候,请在你的rootViewController.viewDidAppear()中使用它
关于ios - 在多次打开应用程序后,弹出窗口要求用户对我的应用程序进行评分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32720111/