UIButton可以用于在UIWebView中执行超链接单击吗



这可能是一个疯狂的问题,但我想在iOS应用程序中使用UIButton,当你点击它时,它会依次点击隐藏UIWebView中加载的网页上的超链接。

链接也可以由javascript调用触发,我只是不确定从UIButton到UIWebView是否可能?

感谢Aaron

您可以通过UIButton点击处理程序在UIWebView内部调用javascript,直接调用处理href点击的javascript函数。

请参阅在运行时基于切换的代码中将html添加到ui web视图

我建议只使用带有提交按钮的HTML表单。我已经做到了,而且简单多了。类似于:

- (NSString *)makeSubmitForm
{
NSMutableString *ms = [NSMutableString string];
[ms appendString:@"<p><form action="formentry">"];
[ms appendString:@"<input style="submit" type="submit" value="Submit" />"];
[ms appendString:@"<input type="hidden" name="fieldtype" value="submit" />"];
[ms appendString:@"</form>"];
return ms;
}

然后在UIWebViewDelegate中查找。下面的代码做到了这一点,并且还检查是否存在其他表单输入内容(如文本字段输入)

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
NSString *surl = [[request URL] absoluteString];
NSRange ner = [surl rangeOfString:@"formentry?"];
if (ner.location != NSNotFound){
NSString *argstr = [surl substringFromIndex:ner.location+ner.length];
NSMutableDictionary *md = [NSMutableDictionary dictionary];
NSArray *args = [argstr componentsSeparatedByString:@"&"];
for (int i=0; i < args.count; i++){
NSString *keyval = [args objectAtIndex:i];
NSArray *pair = [keyval componentsSeparatedByString:@"="];
[md setObject:[pair objectAtIndex:1] forKey:[pair objectAtIndex:0]];
}
[MyDelegate tellItWhatever:md];
} 
return NO;
}

最新更新