【问题标题】:Know when SKStoreReviewController gets dismissed知道 SKStoreReviewController 何时被解雇
【发布时间】:2018-03-29 08:12:31
【问题描述】:

调用SKStoreReviewController.requestReview()后,会弹出使用提示。

当用户点击任何选项时,我如何知道弹出窗口已关闭?

【问题讨论】:

    标签: ios swift swift4 skstorereviewcontroller


    【解决方案1】:

    不可能直接了解SKStoreReviewController的任何信息。

    following post explains 详细了解视图的呈现方式,并可能帮助您理解原因。

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

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

    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")
        }
    }
    

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

    【讨论】:

    • 那么我将如何在该控制器的背景中添加模糊图像?
    • @RodrigoRuiz 假设你提前知道它什么时候会呈现,你可以在呈现之前模糊屏幕。完成后,您可以寻找用户与屏幕的交互以消除模糊。这将是推断屏幕已被关闭的一种方法。
    • @RodrigoRuiz 更新了我对现在应该涵盖您的问题的回答。
    • 我虽然如此,但问题是它只会在用户关闭弹出窗口后再次交互后才会发生,这意味着我无法在商店之后立即删除我的模糊(例如)弹出窗口在他再次触摸屏幕之前关闭。
    猜你喜欢
    • 2020-06-12
    • 1970-01-01
    • 2012-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多