【发布时间】:2016-03-09 09:32:52
【问题描述】:
我正在 UIWebView 中加载一个 URL。它会打开一个包含一些 URL 链接的网页。单击特定链接时是否可以调用方法。
我只是想在我的 iOS 应用中检测 UIWebView 内的 URL 点击。
谢谢。
【问题讨论】:
我正在 UIWebView 中加载一个 URL。它会打开一个包含一些 URL 链接的网页。单击特定链接时是否可以调用方法。
我只是想在我的 iOS 应用中检测 UIWebView 内的 URL 点击。
谢谢。
【问题讨论】:
是的,UIWebViewDelegate 协议中有方法。将您的控制器作为delegate 添加到UIWebView。
self.webView.delegate = self;
然后实现委托的方法:
- webView:shouldStartLoadWithRequest:navigationType:`
您应该阅读它的文档。可以看到,一个参数是navigationType,你只对UIWebViewNavigationTypeLinkClicked感兴趣。
【讨论】:
就像 Timur 所说,将 UIWebViewDelegate 添加到您的 viewController 中
然后你可以使用这样的方法:
-(BOOL) webView:(UIWebView *)inWeb shouldStartLoadWithRequest:(NSURLRequest *)inRequest navigationType:(UIWebViewNavigationType)inType {
if ( [[[inRequest URL] scheme] isEqualToString:@"js-call"] ) {
// Do something interesting...
return NO;
}
return YES;
}
然后我使用了 js 调用,但你也可以使用链接:
window.location.href = "js-call:myEvent";
【讨论】: