【问题标题】:Check if URL has changed in WebView?检查 WebView 中的 URL 是否已更改?
【发布时间】:2017-03-03 18:51:10
【问题描述】:

我正在尝试检查 webView 中的 URL 是否已更改。例如,如果我最初要加载一个像 Wordpress 登录页面这样的页面,我想知道它何时更改并被重定向到登录页面。我尝试使用此资源enter link description here,但答案似乎不完整且不起作用。

 func validateUrl (stringURL : NSString) -> Bool {

var urlRegEx = "((https|http)://)((\\w|-)+)(([.]|[/])((\\w|-)+))+"
let predicate = NSPredicate(format:"SELF MATCHES %@", argumentArray:[urlRegEx])
var urlTest = NSPredicate.predicateWithSubstitutionVariables(predicate)

return predicate.evaluateWithObject(stringURL)
}

urlTest 从未被调用,所以我不确定它的目的。

  if (validateUrl(stringURL: "http://google.com")) {
        //will return true
        print("Do Stuff");
    }
    else {
        print("OTHER STUFf")
        //If it is false then do stuff here.
    }

然后调用这个函数

 func webView(WebViewNews: UIWebView!, shouldStartLoadWithRequest request: NSURLRequest!, navigationType: UIWebViewNavigationType) -> Bool {
if (validateUrl(request.URL().absoluteString())) {
    //if will return true
    print("Do Stuff");
 }
}

我在代码末尾添加了一个返回函数,但该示例不包含返回。我在 Webview 方面的经验很少,因此将不胜感激任何建议或帮助。

【问题讨论】:

    标签: ios swift wordpress webview uiwebview


    【解决方案1】:

    使用 UIWebViewDelegate 的 webViewDidFinishLoad 函数来获取在你的 webview 中加载的当前 URL。每次 webview 加载 URL 时,都会调用函数 webViewDidFinishLoad。

    class YourClass: UIViewController, UIWebViewDelegate {
    
        let initialURL = URL(string: "https://www.google.com.pe/")
        @IBOutlet weak var webView:UIWebView!
    
        override func viewDidLoad() {
            super.viewDidLoad()
            webView.loadRequest( URLRequest(url: initialURL) )
        }
    
        func webViewDidFinishLoad(_ webView: UIWebView) {
            if webView.request != URLRequest(url: initialURL!) {
                //DO YOUR STUFF HERE
            }
        }
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-18
      • 2013-06-14
      • 2018-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多