【发布时间】:2011-11-30 10:19:20
【问题描述】:
是否有可能从uiwebview 获得信号?
就我而言,我在 webview 中显示了一个网页。当用户按下网站上的按钮时,我的应用程序应该(也)对此做出反应。
感谢您的帮助
【问题讨论】:
是否有可能从uiwebview 获得信号?
就我而言,我在 webview 中显示了一个网页。当用户按下网站上的按钮时,我的应用程序应该(也)对此做出反应。
感谢您的帮助
【问题讨论】:
是的,您可以这样做。实施
– webView:shouldStartLoadWithRequest:navigationType:
这个delegate 。每当您的 webview 即将发出请求时,都会调用此方法。所以现在当有人点击你网页上的按钮时,你会得到这个方法的调用。接到这个电话后,你可以选择用它做任何你想做的事情。例如通过您自己的服务器重定向链接,或向您的服务器记录有关用户活动等的请求。
示例 - 在这里,您试图拦截点击您网页的任何链接并首先通过 myMethodAction 传递。
- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType
{
if(navigationType == UIWebViewNavigationTypeLinkClicked)
{
if(overrideLinksSwitch.on == TRUE)
{
[self myMethodAction];
[myWebView stopLoading];
return YES;
}
else
{
return YES;
}
}
return YES;
}
希望这会有所帮助...
【讨论】:
UIWebViewDelegate 提供了几种方法。我曾经像这样使用过其中一个
-(BOOL) webView:(UIWebView *)inWeb shouldStartLoadWithRequest:(NSURLRequest *)inRequest navigationType:(UIWebViewNavigationType)inType {
if ( inType == UIWebViewNavigationTypeLinkClicked ) {
// do stuff
return NO;
}
return YES;
}
【讨论】: