网址未在WKWebView中快速打开

桑杰·米斯拉(Sanjay Mishra)

我需要在WKWebView中打开URL并登录到门户。用户成功登录后,我必须从WKWebView执行下载操作,一切正常,但可以在外部safari浏览器中打开,但根据要求应在WKWebView中打开

WKWebView的插座

@IBOutlet var webView: WKWebView!

在WKWebVIew中调用URL的函数

   func loadURLInWebView() {
   let url = URL(string: "https://www-qa.yyy.com/content/dash/en/public/login.html")
   let urlRequest = URLRequest(url: url!)
   if let webView = webView {
       webView.load(urlRequest)
   }
}

添加decisionPolicyFor委托后,它将在Safari中打开URL,但应在WKWebView中打开。我找不到问题。

 public func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
    let url = navigationAction.request.url
    guard url != nil else {
        print(url!)
        decisionHandler(.allow)
        return
    }

    if url!.description.lowercased().starts(with: "http://") ||
        url!.description.lowercased().starts(with: "https://")  {
        decisionHandler(.cancel)
        UIApplication.shared.open(url!, options: [:], completionHandler: nil)
    } else {
        decisionHandler(.allow)
    }
}
曼尼坎丹

您以错误的方式处理后卫声明。在其他情况下,URL为零时将调用该条件。如果您在其他地方打印(URL!),则您的应用程序将崩溃此外,当URL为零时,应调用cancel Handler。

public func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {

    guard let url = navigationAction.request.url else { // else will be called when url is nil
       decisionHandler(.cancel)
       return
    }

    if url.description.lowercased().starts(with: "http://") ||
       url.description.lowercased().starts(with: "https://")  {
           decisionHandler(.allow)
    } else {
          decisionHandler(.cancel)
           UIApplication.shared.open(url, options: [:], completionHandler: nil)
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

某些网址未在iframe中打开

来自分类Dev

快速打开pdf文件中的网址

来自分类Dev

没有.jpg的Fancybox网址未在框中打开

来自分类Dev

活动未在Android中打开

来自分类Dev

程序未在Linux中打开

来自分类Dev

{{uploadUrl}}的数据网址未在范围网址中交换(AngularJS)

来自分类Dev

在Safari中打开WKWebview target =“ _ blank”链接

来自分类Dev

WKWebView在Safari中打开_Bank目标链接

来自分类Dev

如何在div中打开网址?

来自分类Dev

尝试在Octave中打开网址流?

来自分类Dev

CSS网址中的图片未在GatsbyJS中显示

来自分类Dev

窗口未在新标签页中打开

来自分类Dev

Elasticsearch未在云URL中打开

来自分类Dev

YouTube视频未在webView中打开

来自分类Dev

未在浏览器中打开Google

来自分类Dev

jQuery子菜单未在firefox中打开

来自分类Dev

Tkinter GUI 未在 Pydev 中打开(Liclipse)

来自分类Dev

C:未在“rb”中打开 WAV 文件

来自分类Dev

GNOME 终端未在 Ubuntu 18.04 中打开

来自分类Dev

该链接未在新标签中打开

来自分类Dev

Eclipse 未在 linux 环境中打开

来自分类Dev

WKWebView不会在iOS 9.0中快速显示网站

来自分类Dev

未在MVC登录表单中传递返回网址

来自分类Dev

如果未在VBA中打开,则打开pbix文件

来自分类Dev

如何快速在emacs中打开文件?

来自分类Dev

WKWebView用户代理(快速)

来自分类Dev

magento中的贝宝快速结帐的IPN网址是什么

来自分类Dev

快速读取 JSON 文件中的 HTTPS 网址

来自分类Dev

如何从 Visual Code 的快速打开菜单中打开多个文件?