以编程方式在网站上键入String

时间:2014-10-28 22:23:54

标签: html xcode swift

我想知道如何或者是否可以从我的iPhone应用程序代码在网站上的textField中输入内容。所以我想去一个中间有一个textField的网站,在那里我想输入一个特定的字符串。我怎么能在Swift中做到这一点(或者Objective-C - 我会弄清楚它在Swift中是如何工作的)?我非常感谢任何帮助:)

2 个答案:

答案 0 :(得分:0)

您可以通过调用方法stringByEvaluatingJavaScriptFromString将JavaScript注入UIWebView。您编写了一段JavaScript,您可以在其中选择输入字段并修改它的value属性。

此处描述了该方法: https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIWebView_Class/index.html#//apple_ref/occ/instm/UIWebView/stringByEvaluatingJavaScriptFromString


网上实际上有一篇文章解释了如何做到你需要的: http://iphoneincubator.com/blog/windows-views/how-to-inject-javascript-functions-into-a-uiwebview/

以下是您应该使用的部分(您只需更改DOM选择器中的ID):

[webView stringByEvaluatingJavaScriptFromString:@"var script = document.createElement('script');"
                         "script.type = 'text/javascript';"
                         "script.text = \"function myFunction() { "
                            "var field = document.getElementById('field_3');"
                            "field.value='Calling function - OK';"
                         "}\";"
                         "document.getElementsByTagName('head')[0].appendChild(script);"];

[webView stringByEvaluatingJavaScriptFromString:@"myFunction();"];

答案 1 :(得分:0)

您可以从代理中注入javascript。例如,在Obj-C中(我还不太清楚):

- (void)webViewDidFinishLoad:(UIWebView *)webView{
    [_webView stringByEvaluatingJavaScriptFromString:@"doSomeStuff()"];
}

在您的情况下,您将要操纵DOM以在文本字段中添加一些文本 - 如下所示:

- (void)webViewDidFinishLoad:(UIWebView *)webView{
    NSString * javascript_code = @"document.querySelector('input[name=your_input_name]').value = 'Foobaz'";
    [_webView stringByEvaluatingJavaScriptFromString:javascript_code];
}

但请注意querySelector,我不确定它在iOS网页视图中的可用性。