无法从Webviewcontroller打开Safari浏览器

时间:2018-04-18 11:16:24

标签: ios swift

我在Webviewcontroller中打开链接。我在webview控制器上创建了一个按钮,用于在Safari浏览器中打开该链接。我面临的问题是当我在web视图控制器中完全加载之前打开url时,它在Safari浏览器中成功打开。但是当URL完全加载到webview控制器中时,它不会打开Safari Broswer。

我的代码是:

let alertController = UIAlertController(title: nil, message: nil, preferredStyle: UIAlertControllerStyle.actionSheet)
    alertController.addAction(UIAlertAction(title: NSLocalizedString("Open in Safari", comment: ""), style: .default, handler: { (UIAlertAction) -> Void in
        self.openInSafari()
    }))

    if  (UIDevice.current.userInterfaceIdiom == .phone){
        alertController.addAction(UIAlertAction(title:  NSLocalizedString("Cancel",comment: ""), style: .cancel, handler:nil))
    }

打开Safari浏览器的功能:

func openInSafari(){

    if #available(iOS 10.0, *) {
        UIApplication.shared.open(URL(string: self.currentUrl)!, options: [:],completionHandler: nil)
    } else {
        UIApplication.shared.openURL(URL(string: self.currentUrl)!)
    }

}

截图:

Screenshot 1 Screenshot 2

1 个答案:

答案 0 :(得分:0)

请尝试一次:

guard let url = URL(string: self.currentUrl) else {
    return //be safe
}

if #available(iOS 10.0, *) {
    UIApplication.shared.open(url, options: [:], completionHandler: nil)
} else {
    UIApplication.shared.openURL(url)
}