`UIApplication.shared.canOpenURL(:)` 方法在 iOS 11.4(仅限 iPad 设备)上不起作用?

Posted

技术标签:

【中文标题】`UIApplication.shared.canOpenURL(:)` 方法在 iOS 11.4(仅限 iPad 设备)上不起作用?【英文标题】:`UIApplication.shared.canOpenURL(:)` method not working on iOS 11.4 (iPad Devices Only)? 【发布时间】:2018-07-07 09:15:43 【问题描述】:

为什么UIApplication.shared.canOpenURL(:) 方法在 ios 11.4 - iPad 设备上不起作用?虽然它在 iOS 11 和 12.0 [iPhone 设备] 上运行良好!

注意:

用 Swift 4.2 编写的代码 传递的网址有效 我用https

【问题讨论】:

它们在其他模拟器和设备上也能正常工作? App 被苹果拒绝并通过删除此方法解决了问题! UIApplication.shared.canOpenURL(:) 在 iOS 11 和 12.0 [iPhone 设备] 上运行良好 【参考方案1】:

好的,兄弟,我在使用 facebook 打开共享链接时遇到了同样的问题,当我将 shareDialog.mode 更改为 .automatic

时我解决了这个问题

所以你可以试试这个方法并告诉我它是否有效?

let url = URL(string: "www.google.com")
let content = LinkShareContent(url: url, quote: "Google")
let shareDialog = ShareDialog(content: content)
shareDialog.mode = .automatic
shareDialog.presentingViewController = self
shareDialog.failsOnInvalidData = true
shareDialog.completion =  result in



do 
        try shareDialog.show()
 catch 
        print("Error")

正如我们的讨论,你需要在你的应用中打开一个网页视图

所以你可以添加这个

import UIKit

class WebVC: UIViewController 

@IBOutlet weak var webView: UIWebView!

var url = ""
var firstLoad = true

override func viewDidLoad() 
    super.viewDidLoad()
    self.setup()


func setup() 

    self.webView.backgroundColor = Color.white.value
    self.webView.delegate = self

    var urlRequest =  URLRequest(url: URL(string: url)!)
    urlRequest.cachePolicy = .reloadIgnoringCacheData
    self.webView.loadRequest(urlRequest)


在你的控制器中,你可以使用

func openWebView() 

   let webVC = WebVC()
   webVC.url = "www.google.com"
   webVC.title = "Google"
   self.navigationController?.pushViewController(webVC, animated: true)

【讨论】:

谢谢,但我不使用UIApplication.shared.canOpenURL(:) method 分享!我用它在 webview 中打开一个 url 好的,兄弟,我可以和你分享一个 WebVC,它可以和我一起使用你可以用另一个替换它 url验证阶段的问题不是在webview中打开url

以上是关于`UIApplication.shared.canOpenURL(:)` 方法在 iOS 11.4(仅限 iPad 设备)上不起作用?的主要内容,如果未能解决你的问题,请参考以下文章