タイトルの通りです。
アプリ起動5回目に、アプリの評価をお願いするアラートが表示されるようにしました。
同じような処理は過去に2回ほど実装済みですが、言語やバージョンが変わるたびにコードが変わり流用できないのが痛いところですね。
。・゚・(ノ∀`)・゚・。
以下コードはSwift4.0.3です。
〜前略〜
class ViewController: UIViewController {
〜略〜
private let _appUrl: String = "アプリストアへのURLを入れてね"
struct Constants {
enum User : String {
case startNum
}
}
〜略〜
override func viewDidLoad() {
super.viewDidLoad()
〜略〜
// 起動回数の保存
var startNum : Int = 0
if UserDefaults.standard.object(forKey: Constants.User.startNum.rawValue) != nil {
startNum = UserDefaults.standard.integer(forKey: Constants.User.startNum.rawValue)
}
startNum = startNum + 1
UserDefaults.standard.set(startNum, forKey: Constants.User.startNum.rawValue)
// 起動回数が5回目ならば評価してねメッセージ表示
if (5 == startNum) {
let alertController = UIAlertController(title: "いつも使ってくれてありがとう!",message: "よろしければアプリを評価してください。", preferredStyle: UIAlertControllerStyle.alert)
let okAction = UIAlertAction(title: "はい", style: UIAlertActionStyle.default){ (action: UIAlertAction) in
if let url = URL(string: self._appUrl) {
UIApplication.shared.open(url, options: [:], completionHandler: nil) // iOS 10以降
}
}
let cancelButton = UIAlertAction(title: "キャンセル", style: UIAlertActionStyle.cancel, handler: nil)
alertController.addAction(okAction)
alertController.addAction(cancelButton)
present(alertController,animated: true,completion: nil)
}
〜略〜
}
〜後略〜