iOS如何知道在UIWebView上是否单击了html5按钮

时间:2015-07-28 09:21:25

标签: ios html5 webview

我有一个带有UIWebView的iOS应用程序,我需要从服务器端接收一个href url,然后在我的UIWebView中显示来自该href的HTML5的网页:

MyViewController *myVC = [[MyViewController alloc] init];
myVC.url = serverSideResponse.href;
[self.navigationController presentViewController:myVC animated:YES completion:nil];

在MyViewController.m中,我有这个:

_webView = [[UIWebView alloc] initWithFrame:myFrame];
[self.view addSubView:_webView];
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:url]];
[_webView loadRequest:request];

因此网页来自服务器端,我希望我的iOS app / webview知道该页面上是否点击了该按钮。更具体地说,如果单击该按钮,则关闭我的webview(意味着removeFromSuperView)。

现在我能看到的是,当我查看该网页的源代码时,我知道按钮ID。

我收到的网址是:https://api.uber.com/v1/surge-confirmations/edbfdd9a-276b-4b85-b3f4-5a0c948a17fe。当我在我的网页视图中加载它时,它有一个按钮,当我点击它时没有发生任何事情,只有控制台记录了点击事件,请求是:https://api.uber.com/v1/surge-confirmations/edbfdd9a-276b-4b85-b3f4-5a0c948a17fe#< - 有一个额外的{{1 }}

但是,当我将url放在桌面浏览器中以显示它并单击按钮时,它可以按预期重定向到下一个URL(#)。

请指教,谢谢!

1 个答案:

答案 0 :(得分:1)

感谢@Wain和@palme,我找到了一个UIWebView委托回调方法

-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType

可以做到这一点。

参数requestnavigationType可以告诉您哪个navigationType触发了哪个请求。