2

调用后SKStoreReviewController.requestReview(),用户会弹出一个弹窗。

当用户点击任何选项时,我怎么知道弹出窗口被关闭了?

4

1 回答 1

2

无法SKStoreReviewController 直接找到有关.

以下帖子解释了有关视图如何呈现的更多信息,并可能帮助您理解原因。

但是,我不喜欢这个答案,所以我测试了您评论的变体,并且能够准确确定屏幕何时被关闭。

以下是一个非常简单的应用程序,说明了这一点:

import UIKit
import StoreKit

class ViewController: UIViewController {
    @IBOutlet weak var testView: TestView!

    override func viewDidLoad() {
        super.viewDidLoad()

        testView.isUserInteractionEnabled = false
    }

    @IBAction func submit(_ sender: UIButton) {
        testView.isUserInteractionEnabled = true
        SKStoreReviewController.requestReview()
    }
}

class TestView: UIView {
    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        super.touchesBegan(touches, with: event)

        print("touch")
    }
}

这里发生的事情是,我在主屏幕上有一个视图,只有在显示提示后才能与之交互。您当然应该清理它,使其在第一次成功后停止接收输入,但这确实会在请求被驳回后通知我用户与应用程序的交互。

于 2017-10-17T15:29:45.963 回答