按下UIWebView中的textField时显示ViewController

时间:2013-08-06 11:47:30

标签: iphone ios objective-c

我以前从未真正使用UIWebView,所以我不确定从哪里开始。实际上,我正在与正在为我正在开发的应用程序构建此Web平台的开发人员合作。用户应填写WebView中的表单。其中一个字段是他们想要购买的票证的目的地。在应用程序中,我们已经有一个ViewController布局很好,允许用户输入自定义目标或从预定义列表中选择。单击WebView中的文本字段时,是否可以显示此ViewController?然后,当用户完成时,该字段将填充所选目的地。有没有更好的方法来做到这一点(没有加载Web开发人员),我只是愚蠢?

就像我说的那样,我以前从未真正使用过这种方式的UIWebView,因为我通常喜欢让我的应用程序100%原生,但这里是我想象它可能有用的方式:

-(void)someMethodThatsCalledWhenTextFieldIsPressed {
    AttachDestinationViewController *vc = [[AttachDestinationViewController alloc] init];
    [self presentViewController:vc animated:YES completion:nil];
}

然后在AttachDestinationViewController中我们会做类似的事情:

-(void)didFinish {
    CustomUIWebViewClass *parentViewController = (CustomUIWebViewClass *)self.parentViewController;
    parentViewController.propertyForTextField.text = self.locationEntered.text;
    [self dismissViewControllerAnimated:YES completion:nil];
}

如果它是一个普通的ViewController,那就是我想象的那样,但是,我完全不知道如何调用-(void)someMethodThatsCalledWhenTextFieldIsPressed,也不知道如何在UIWebView中为textField创建propertyForTextField

任何帮助都将不胜感激,敬意,
迈克

1 个答案:

答案 0 :(得分:2)

首先,您需要在UIWebView

中添加一个按钮

类似的东西:

<a href="#" class="buttonStyle">Click me!</a>

点击html

中的链接(按钮)执行自定义代码

然后实施shouldStartLoadWithRequest

您的按钮链接应如下所示:

<a href="button://dosomething" class="buttonStyle">Click me!</a>

现在实现shouldStartLoadWithRequest,如下所示:

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType 
{
    // only do something if a link has been clicked...
    if (navigationType == UIWebViewNavigationTypeLinkClicked) {     

            // check if the url requests starts with our custom protocol:
        if ([[[request URL] absoluteString] hasPrefix:@"button://"]) 
        {
            [self CallYourMethodButton];
            return NO;
        } 
    }

    return YES;
}

此方法将检测您根据标题单击的href按钮,此处您可以调用按钮的方法。

编辑:

那么迈克那么就像从表格中输入数据一样吧?然后,您需要获取文本字段的元素名称或元素ID。请通过以下链接: -

Finding and auto-filling HTML login forms in a UIWebView using JavaScript

ios - Injecting text into a UIWebView textField