【问题标题】:iOS Swift SFSafariViewController update new URL and refresh viewiOS Swift SFSafariViewController 更新新 URL 并刷新视图
【发布时间】:2021-11-17 18:14:52
【问题描述】:

我正在使用 SFSafariViewController 加载网络链接,
在我的情况下,首先我需要在某个过程/时间(如 10 秒)后打开一个 URL,我需要在同一选项卡中更新我的 URL 并刷新 SFSafariViewController。

if let url = URL(string: "Google.com") {
    let VC= SFSafariViewController(url: url)
    VC.delegate = self
    self.present(VC, animated: true, completion: nil)
}

有什么方法可以更新 URL 并刷新当前的 SFSafariViewController 页面?

【问题讨论】:

    标签: ios swift sfsafariviewcontroller sfsafariviewcontrollerdelegate


    【解决方案1】:

    SFSafariViewController 专门用于呈现您的应用程序无法与之交互的 Web 内容。来自文档:

    用户的活动和与 SFSafariViewController 的交互对您的应用不可见,无法访问自动填充数据、浏览历史记录或网站数据。

    更具体地与您的问题相关,SFSafariViewController 的文档还说:

    如果您的应用自定义、交互或控制网页内容的显示,请使用 WKWebView 类。

    既然你想控制网页内容的显示(改变 URL)你应该使用 WKWebView。

    【讨论】:

      【解决方案2】:

      使用WKWebView解决问题。

      class webViewController: WKNavigationDelegate, WKUIDelegate {
          var webview: WKWebView!
          override func viewDidLoad() {
              super.viewDidLoad()
              webview = WKWebView(frame: self.view.bounds)
              self.view.addSubview(webview)
              webview.navigationDelegate = self
              webview.uiDelegate = self
          }
          
          func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
              if let url = navigationAction.request.url {
                  // Dosomthing()
                  decisionHandler(.cancel)
                  return
              }
              decisionHandler(.allow)
          }
          
          func Dosomthing() {
              self.webview.load(URLRequest(url: newURL))
              DispatchQueue.main.asyncAfter(deadline: .now() + 2.0) {
                  self.webview.reload()
              }
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-20
        • 2020-04-05
        • 2011-07-30
        • 1970-01-01
        • 2016-07-28
        • 2014-03-03
        相关资源
        最近更新 更多