如何在uiwebview中为所有URL添加参数

时间:2015-11-18 14:42:57

标签: ios swift uiwebview

如何在uiwebview中检测到的所有网址中添加参数?我想用这个参数追加所有的url字符串:?app = 1。

现在我只使用1个UIWebViewDelegate:

func webViewDidFinishLoad(webView: UIWebView) {
}

我可以用另一个代表来实现这个目标吗?

我尝试过:

func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool {

    let url = (request.URL?.absoluteString)! + "?app=1"
    let requestURL = NSURL(string: url)
    let req = NSURLRequest(URL: requestURL!)
    //Load url into WebView container
    //webView.loadRequest(req)


    return true;
}

1 个答案:

答案 0 :(得分:1)

如果在用户实际选择链接时完成此操作就足够了,请考虑在Web视图的委托中更改它

- webView:shouldStartLoadWithRequest:navigationType:

并采取适当的措施,例如返回false并手动加载修改后的网址。

编辑以回应编辑过的问题:

尝试这些方面的东西(没有IDE方便的atm):

func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool {

if let url = request.URL {
   if url.absoluteString.rangeOfString("?app=1") != nil {
      // everything is fine. 
      return true
      }
   else {
     let newRequest = // build new request here
     webView.loadRequest(newRequest)
     return false
     }
 }


return true;
}