2012-02-07 50 views
1

我想知道是否有任何可能的方式在Objective-C应用程序的网站上的文本框内输入文本,然后单击按钮。我基本上希望将文本放入网站页面中间的文本框中,然后单击按钮,而不打开Web浏览器。如果页面发生变化,我打算更新应用程序,说它是成功的。在文本框中输入文本并点击网站上的按钮

我正在考虑做一些相反的事情下载东西。我是否可以将此代码反转为下载图像,以便将文本上传到文本字段中?

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

有可能参与喜欢使用NSURLConnection,也许NSURLResponse,我可以使用(和以前做过,只有真正简单的)其他的东西,但我会需要一些帮助,如果他们参与。

我真的不确定,有没有搜索条件可能会用于Google搜索?我提出的那些似乎没有返回任何结果。

在此先感谢!

回答

0

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

刚刚获得当前脚本对象:

id currentScriptingObject = [webview windowScriptObject]; 

然后实现这样的JavaScript命令:

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

然后使用NSString“的论点小号[NSString stringWithFormat:@"hello: %@", someString]

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,并且如果表单在将来发生变化,你的应用可能会中断。
相关问题