首页 > 解决方案 > SKStoreReviewController.requestReview() 在没有蜂窝服务时冻结应用程序,即使在后台线程上运行也是如此

问题描述

我在下面包含了我的代码。如果没有 wifi 和蜂窝服务,应用程序会冻结。如果我完全关闭蜂窝网络,它会打印“无法访问”,这是预期的,并且应用程序运行正常。但是如果没有服务并且蜂窝网络处于打开状态(例如,在地铁中),它会显示“通过蜂窝网络可达" 而且我无法与应用程序交互。它只是被冻结了,即使该代码在后台线程上也是如此。

 let reachability = Reachability()

@IBAction func rateButtonAction(_ sender: Any) {
    if #available(iOS 10.3, *) {


        DispatchQueue.global(qos: .background).async {
                if self.reachability?.connection == .wifi {
                    print("Reachable via WiFi")
                    SKStoreReviewController.requestReview()
                } else if self.reachability?.connection == .cellular {
                    print("Reachable via Cellular")
                    SKStoreReviewController.requestReview()
                } else if self.reachability?.connection == .none {
                    print("Not reachable")
                } else {
                    print("Not reachable")
                }
            }
    } else {
        print("Rate didn't work")
    }
}

标签: iosswiftxcodereachabilityskstorereviewcontroller

解决方案


推荐阅读