如何在iOS中的UIWebView中操作DOM

我在我的应用程序中使用UIWebView。 我想在用户点击UIWebView中的一个网站链接时调用一个Objective-C函数。 有没有办法做到这一点? UIWebView允许改变它吗?

先挂钩吧。 [yourwebview setDelegate:self]

使用下面的委托方法

 webView:shouldStartLoadWithRequest:navigationType 

喜欢:

 - (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType { NSURL *url = request.URL; NSString *urlString = url.absoluteString; //put your logic here, like if (![url.scheme isEqual:@"yourscheme"]) {// or query contains or [url absolutestring] contains etc return NO; } return YES; } 

如果你想操纵DOM或调用UIWebView的任何function,那么使用:

 [yourwebView stringByEvaluatingJavaScriptFromString:@"alert('hello')"]; [yourwebView stringByEvaluatingJavaScriptFromString:@"$('#domid').hide();"]; 

正如在其他答案中所述,你应该使用webview委托的

 webView:shouldStartLoadWithRequest:navigationType 

方法从WebView内偷运一些数据。 你可以在这里阅读我关于这个主题的详细答案: 如何在uiwebview中使用JavaScript来获得点击的buttonID?