当前位置: 首页 > 面试题库 >

在iOS的wkwebview中捕获重定向URL

顾斌
2023-03-14
问题内容

使用WKWebView时,如何捕获重定向URL,例如在提交用户名和密码或其他数据时网页重定向到另一个页面。我需要捕获重定向的URL。WKNavigationDelegate中是否有任何方法可以覆盖?


问题答案:

使用这个WKNavigationDelegate方法

public func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Swift.Void) {
        if(navigationAction.navigationType == .other) {
            if navigationAction.request.url != nil {
                //do what you need with url
                //self.delegate?.openURL(url: navigationAction.request.url!)
            }
            decisionHandler(.cancel)
            return
        }
        decisionHandler(.allow)
    }

希望这可以帮助



 类似资料:
  • 问题内容: 我正在使用Web编程语言构建应用程序,并希望在用户单击HTML按钮时启动相机。由于我希望相机视图是自定义视图,因此需要使用Swift进行设计。因此,当用户单击此HTML按钮时,我想在Swift中“捕获”此单击,以便启动本机相机视图。 我知道可以用WKWebview完成,但是我真的不知道该怎么做。 例如,我的Javascript(jQuery)代码可能如下所示: 你能帮我做到吗? 谢谢。

  • 我在我的应用程序中有一个活动,其中有一个Webview,可以打开提供给它的URL,然后重定向到网站的登录页。我面临的问题是,一旦用户在登录页上,重定向就是相同的页面重定向,即如果登录页是 www.example。通信/着陆 重定向是 www.example。com/landing/#其他_页面 它不调用 onPageStarted(WebView视图、字符串url、位图favicon) 但是 网页

  • 我正在尝试用以下方法重定向无效的URL 我不想使用解决浏览器支持问题。 我正在使用grunt serve进行本地前端开发和封装,并在生产中与spring boot一起运行。

  • 我在我的应用程序中使用log4j来记录具有不同日志级别的某些包。 但是,stderr和stdout似乎没有在这个日志文件中捕获,而是在应用程序开始时将它们打印在文件中 是否可以在log4j中捕获stdout和stderr(例如,stdout作为info,stderr作为WARN/ERROR)以及out中。日志文件? log4j的设置如下: 更新: stackoverflow错误的StackTrac

  • 问题内容: 我运行命令 我希望将错误也放置在中。命令 的状态为139,在终端上的输出为: 文件为空。 问题答案: 该消息是 不是 从你的程序来。 它是由外壳程序接收到的信号而产生的。它不是程序的 stderr 或 stdout 的一部分。 因此,shell的消息可以捕获为:

  • 有可能是这样的深层链接吗我有这样的链接http://example.com/shortlink当它被打开到浏览器时,它将重定向到http://example.com/product?id=123然后在那里,我将打开我的应用程序,直接转到id为123的产品 我有这样的想法 [IntentFilter(新[]{Intent.ActionView}, Categories=new[]{Intent.Ca