0

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

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

谢谢亚伦

4

2 回答 2

1

您可以从 UIButton 点击​​处理程序调用 UIWebView 内的 javascript,直接调用处理 href 点击的 javascript 函数。

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

于 2012-09-28T12:06:45.217 回答
0

我建议只使用带有提交按钮的 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;
    }
于 2012-09-28T11:56:30.617 回答