我有一个带有多个按钮的 UIWebView 页面.需要识别UIWebView的哪个按钮被点击.
I have a UIWebView page with multiple button . Need to identify which button is clicked of the UIWebView.
UIWebview 加载内容的页面源:
Page source for UIWebview load contents:
<form action="settings_personal.php" data-ajax="false" method="post">
<input type="submit" name ="btn_settings_personal" value=" Goals (Personal data) " data-icon="star" data-theme="g" />
</form>
<form action="settings_global.php" data-ajax="false" method="post">
<input type="submit" name ="btn_settings_global" value=" Settings " data-icon="gear" data-theme="g" />
</form>
<form action="" data-ajax="false" method="post">
<input type="submit" name ="btn_web_access" value=" Web Plattform Access " data-icon="plus" data-theme="h" />
</form>
我需要识别为btn_web_access"命名按钮单击的按钮???
I need to identify button clicked for 'btn_web_access' named button ???
我已经实现了以下:
- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType{
NSString* clicked = [self.webView stringByEvaluatingJavaScriptFromString:@"document.getElementById('btn_web_access').click();"];
NSLog(@"CLICK %@",clicked);
}
但它没有用..提前谢谢.
but its of no use..Thanks in advance.
只要使用请求的URL属性来区分加载请求的目标即可:
Just use the request's URL attribute to distinguish the load request's target:
- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType{
NSLog(@"url: %@", [[request URL] absoluteString]);
return YES;
}
根据调用的 URL,您可以知道您当前显示的网页的哪个按钮(甚至是任何链接)被点击了.然后执行所需的操作,不要忘记返回一个 BOOL 值,指示是否实际加载请求的 URL.
Based on the URL being called, you know which button (or even any link) of your currently shown webpage was clicked. Then take the action being needed and don't forget to return a BOOL value indicating wether or not to actually load the requested URL.
在 Swift 中你可能有
In Swift you might have
func webView(webView:UIWebView,
shouldStartLoadWithRequest request:NSURLRequest,
navigationType:UIWebViewNavigationType) -> Bool
{
if (navigationType == .FormSubmitted)
{
print("was the 'submit' form")
}
let u = request.mainDocumentURL
print("local or remote url was " ,u)
return true // allow the form to in fact send the form
}
这篇关于识别 UIWebview 的提交按钮点击的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!