在Textfield中输入文本,在网站上单击按钮

时间:2012-02-07 13:10:16

标签: objective-c networking web browser nsurlconnection

我想知道是否有任何可能的方法在objective-c应用程序的网站上的文本字段中输入文本,然后单击按钮。我基本上想将文本放入网站页面中心的文本字段中,然后单击按钮,而不打开Web浏览器。如果页面发生变化,我计划更新应用程序以表明它已成功。

我正想着做一些与下载相反的事情。我可以撤消此代码以下载图片,以便将文本上传到文本字段吗?

NSData * imageData = [[NSData alloc] initWithContentsOfURL: [NSURL URLWithString: @"http://myurl/mypic.jpg"]];
cell.image = [UIImage imageWithData: imageData];
[imageData release];

可能还有其他一些事情,例如使用NSURLConnectionNSURLResponse,我可以使用(之前已经完成,只是非常简单),但如果他们是,我需要一些帮助参与。

我真的不确定,是否有任何搜索字词我可能想用于谷歌搜索?我提出的那些似乎没有返回任何结果。

提前致谢!

2 个答案:

答案 0 :(得分:0)

有几种方法可以解决这个问题,具体取决于您尝试连接的服务允许的内容:

  1. 如果您正在使用具有文档化API的网站,您可以使用该网站执行您尝试执行的操作,然后使用它。他们通常会有关于如何使用它的信息,而且相当简单。 eBay将是这种方法的一个很好的例子。在许多情况下,只需要创建一个NSURLConnection并使用适当形成的NSURL来格式化请求所需的信息,并将产生一个明确记录的响应,您可以在代理中处理。
  2. 如果它们没有要使用的API,如果它是一个简单的GET请求,您可以找出格式并创建您自己的NSURLConnection(例如。http://www.thesiteinquestion.com/here.php?item=4f&quantity=3)。
  3. 如果您必须手动加载页面,请填写表单并提交,您可以通过Obj-C中的DOM编程来完成(有关详细信息,请参阅https://developer.apple.com/library/safari/#documentation/appleapplications/Conceptual/SafariJSProgTopics/WebKitJavaScript.html,并参阅http://www.cocoabuilder.com/archive/cocoa/160407-programmatic-web-form-fill-in.html例如)。但是公平警告:它可以是PITA,如果表单将来发生变化,您的应用可能会中断。

答案 1 :(得分:0)

我发现我可以使用Javascript来操作网站,使用WebView对象。

只需获取当前的脚本对象:

id currentScriptingObject = [webview windowScriptObject];

然后实现这样的javascript命令:

[currentScriptingObject evaluateWebScript:@"javascript:void(someJavascriptCommand.run);"];

然后使用NSString的{​​{1}}作为参数。