2012-02-16 48 views
1

我正在使用PhoneGap構建iPhone應用程序。我正在使用ChildBrowser插件。PhoneGap/ChildBrowser - 向ChildBrowser發送應用程序窗體

如果我在App中有一個帶有用戶名/密碼的表單,是否可以將這些信息發佈到像www.mydomain.com/login.php這樣的URL並在ChildBrowser中打開?

請讓我知道。

謝謝。

回答

3

您當然可以將GET參數傳遞給childBrowser.showWebPage()

您可以在應用程序中攔截您的表單提交,並收集傳遞的字段名稱和值(假設這是一個登錄表單,所以說用戶名和密碼),並將它們作爲參數傳遞給在ChildBrowser中打開的URL。

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

這是用於演示目的相當單純的版本。改善它並不需要太多。

捕獲當然是通過GET發送。如果您的登錄表單期待POST並且無法更改,則可能會出現問題。

編輯:

如果POST是你唯一的選擇,也許你會使用AJAX張貼到形式,而不是使用兒童瀏覽器會更好。

+0

這是我的問題。登錄表單僅需要POST。 – Andrei 2012-02-20 08:08:41

+0

我編輯了我的答案... – Devgeeks 2012-02-20 08:50:48

3

我正在尋找解決方案,並最終開發它。這不會在iPhone的兒童瀏覽器中出現。 所以,這裏是我添加到插件的代碼。 FYI,數據應與格式的字符串:ARG1 =值1 & ARG2 =值2 &富=酒吧

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 2013-05-09 04:48:33

相關問題