ios - 在多次打开应用程序后,弹出窗口要求用户对我的应用程序进行评分?

标签 ios swift

我一直在尝试制作一个弹出窗口,询问用户是否要在打开我的应用程序多次(比如 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/

相关文章:

具有按比例填充的 subview 和固有宽度的 iOS StackView 的行为不符合预期

ios - 在 Controller ABC 之间传递数据,从 C 到 A

swift - 获取具有多个部分的表中一行的索引路径

ios - UITableView 中的重用问题

ios - JSON Swift 填充 TableView 错误

ios - UIWebView 的内容背景颜色不透明

ios - 对 <ViewController> 开始/结束外观转换的不平衡调用

swift - 授予 OSX 沙盒查找器同步扩展持久写入访问权限

ios - 在应用程序启动时启动视频失败 iOS

.net - MonoTouch 应用程序无法构建/部署到 iphone 设备,但它在 iSimulator 上运行良好