3

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

4

2 回答 2

7

先上钩。[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 的任何函数,那么使用:

[yourwebView stringByEvaluatingJavaScriptFromString:@"alert('hello')"];
[yourwebView stringByEvaluatingJavaScriptFromString:@"$('#domid').hide();"];
于 2013-04-14T16:52:33.407 回答
0

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

webView:shouldStartLoadWithRequest:navigationType 

从 WebView 中走私一些数据的方法。您可以在此处阅读我关于此主题的详细回答:如何在 uiwebview 中使用 javascript 来获取单击的按钮 ID?

于 2013-04-21T03:23:42.943 回答