Введите текст в текстовое поле и нажмите кнопку на веб-сайте - PullRequest
1 голос
/ 07 февраля 2012

Мне было интересно, есть ли какой-нибудь возможный способ ввести текст внутри текстового поля на веб-сайте из приложения target-c, а затем нажать кнопку. Я в основном хочу поместить текст в текстовое поле в центре страницы веб-сайта, а затем нажать кнопку без открытия веб-браузера. Если страница изменится, я планирую обновить приложение, чтобы сообщить, что оно успешно.

Я думал сделать что-то противоположное загрузке чего-либо. Могу ли я перевернуть этот код для загрузки изображения, чтобы оно загружало текст в текстовое поле?

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

Возможно, есть и другие вещи, такие как NSURLConnection и, возможно, NSURLResponse, которые я могу использовать (и делал раньше, только очень просто), но мне понадобится немного помощи, если они будут задействованы.

Я действительно не уверен, и есть ли какие-либо условия поиска, которые я мог бы использовать для поиска в Google? Те, что я придумаю, похоже, не дают никаких результатов.

Заранее спасибо!

Ben

Ответы [ 2 ]

0 голосов
/ 07 марта 2012

Я обнаружил, что могу просто использовать Javascript для управления сайтом, используя объект WebView.

Просто получить текущий объект сценариев:

id currentScriptingObject = [webview windowScriptObject];

Затем реализовать команды javascript, подобные этой:

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

Затем используйте NSString s [NSString stringWithFormat:@"hello: %@", someString] для аргументов.

0 голосов
/ 07 февраля 2012

Есть несколько способов справиться с этим, в зависимости от того, к чему позволяет служба, к которой вы пытаетесь подключиться:

  1. Если вы работаете с веб-сайтом, имеющим документированный API-интерфейс, который вы можете использовать, чтобы делать все, что вы пытаетесь, используйте его. У них обычно есть информация о том, как использовать это, и это довольно просто. eBay был бы достойным примером такого подхода. Во многих случаях это будет просто вопрос создания NSURLConnection с соответствующим образом сформированным NSURL, который форматирует информацию, необходимую для запроса, и приведет к четко документированному ответу, который вы обработаете в своем делегате.
  2. Если у них нет API для использования, если это простой запрос GET, вы можете выяснить формат и создать свой собственный NSURLConnection, как указано выше (например, http://www.thesiteinquestion.com/here.php?item=4f&quantity=3).
  3. Если вам необходимо вручную загрузить страницу, заполнить форму и отправить ее, вы можете сделать это с помощью программирования DOM в Obj-C (для получения более подробной информации см. 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, и если форма изменится в будущем, ваше приложение, вероятно, сломается.
...