如何在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;
}
答案 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;
}