我正在访问另一个团队已经构建的网页,以涵盖应用程序中的某些功能(因此我无法更改网页)并且我遇到了一些小问题。其中一个按钮仅在满足某些必要条件时激活(通过Javascript
),当UIWebView
被激活并单击时,它会拒绝被注意到。这意味着shouldStartLoadWithRequest
不会被调用,我需要它来执行某些功能。我在查看源代码,按钮最初没有HREF
,我认为这可能会让UIWebView感到困惑。有没有人对如何让UIWebView
注意到这个按钮有任何想法?
谢谢,
麦克
按钮的HTML:
如果没有网址:<a class="ts_btn book_btn" href="">Book</a>
如果有网址:<a class="ts_btn book_btn" href="/bookings/new?date=2013-10-10&bus_id=2&slot_number=9">Book </a>
答案 0 :(得分:2)
一种方法是使用stringByEvaluatingJavaScriptFromString调用来修改webview中的href
NSString *js = @"document.getElementById('mybuttonid').setAttribute('href','http://www.dummylink.com/')";
[webView stringByEvaluatingJavaScriptFromString: js];
然后你可以使用
-(BOOL) webView:(UIWebView *)inWeb shouldStartLoadWithRequest:(NSURLRequest *)inRequest navigationType:(UIWebViewNavigationType)inType
要实际忽略该链接并执行所需的功能。
答案 1 :(得分:1)
如果我没错,你想从UIWebView中打开iPhone浏览器中的链接。意味着当用户点击按钮时,它将在iPhone浏览器中重定向。如果我是对的请尝试使用以下步骤,否则请在下面评论我错了。我不介意:
在方法类(.m文件)中添加以下方法
#pragma mark - Webview Delegate Methods
-(BOOL) webView:(UIWebView *)inWeb shouldStartLoadWithRequest:(NSURLRequest *)inRequest navigationType:(UIWebViewNavigationType)inType
{
if ( inType == UIWebViewNavigationTypeLinkClicked )
{
[[UIApplication sharedApplication] openURL:[inRequest URL]];
return NO;
}
return YES;
}