2012-02-16 2 views
1

Я создаю приложение iPhone с помощью PhoneGap. Я использую плагин ChildBrowser.PhoneGap/ChildBrowser - Форма приложения POST для ChildBrowser

Если у меня есть форма в приложении с именем пользователя/pass, есть ли в любом случае я могу опубликовать эту информацию по URL-адресу, например www.mydomain.com/login.php, и открыть его в ChildBrowser?

Пожалуйста, дайте мне знать.

Спасибо.

ответ

3

Вы можете передать параметры GET на childBrowser.showWebPage().

Вы можете перехватить отправку своей формы в своем приложении и собрать имена полей и переданные значения (при условии, что это форма входа, так сказать имя пользователя и пароль) и передать их в качестве параметров URL-адреса, открытого в ChildBrowser.

childBrowser.showWebPage('https://www.mydomain.com/login.php?username='+username+'&password='+password)

Это довольно простой вариант для демонстрационных целей. Это не займет много времени, чтобы сделать его лучше.

Уловка, конечно же, отправляется через GET. Если ваша форма входа ожидает POST, и вы не можете ее изменить, у вас может возникнуть проблема.

Edit:

Если POST это единственный вариант, возможно, вы бы лучше использовать AJAX для отправки сообщений в форму вместо использования детского браузера.

+0

Это моя проблема. Форма входа в систему ожидает только POST. – Andrei

+0

Я отредактировал мой ответ ... – Devgeeks

3

Я искал решение и закончил его разработку. Это не выходит из коробки в childbrowser для iPhone. Итак, вот код, который я добавил в плагин. FYI, данные должны быть строкой в ​​формате: arg1 = value1 & арг2 = value2 & Foo = бар

ChildbrowserViewController Я добавил следующий метод: там

- (void)postURL:(NSString*)url data:(NSString*)data{ 
NSMutableURLRequest *request = [[NSMutableURLRequest alloc]initWithURL: [NSURL URLWithString:url]]; 
[request setHTTPMethod: @"POST"]; 
[request setHTTPBody: [data dataUsingEncoding: NSUTF8StringEncoding]]; 
[webView loadRequest: request]; 
webView.hidden = NO;} 

ChildbrowserCommand Я добавил следующий код в метод showWebPage:

NSString* method = [ options objectForKey:@"method"]; 
if ([method isEqualToString:@"POST"]){ 
    [childBrowser postURL:url data:[options objectForKey:@"data"]]; 
}else{ 
    [childBrowser loadURL:url]; 
} 

HTH! Milton.

+1

хорошая работа ........ – Biranchi