【问题标题】:`UIApplication.shared.canOpenURL(:)` method not working on iOS 11.4 (iPad Devices Only)?`UIApplication.shared.canOpenURL(:)` 方法在 iOS 11.4(仅限 iPad 设备)上不起作用?
【发布时间】: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 设备] 上运行良好

标签: ios swift ipad


【解决方案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
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-24
  • 1970-01-01
  • 2018-09-20
  • 1970-01-01
  • 1970-01-01
  • 2016-01-26
相关资源
最近更新 更多