我正在使用PhoneGap构建iPhone应用程序。我正在使用ChildBrowser插件。
如果我在应用程序中有一个带有用户名/密码的表单,那么我是否可以将这些信息发布到www.mydomain.com/login.php这样的URL并在ChildBrowser中打开它?
请告诉我。
感谢。
答案 0 :(得分:3)
您当然可以将GET参数传递给childBrowser.showWebPage()
。
您可以在应用中拦截表单的提交,并收集传递的字段名称和值(假设这是一个登录表单,例如用户名和密码),并将它们作为参数传递给在ChildBrowser中打开的URL。 / p>
childBrowser.showWebPage('https://www.mydomain.com/login.php?username='+username+'&password='+password)
这是一个用于演示目的的相当简单的版本。它不会花费太多时间来改善它。
捕获当然是通过GET发送的。如果您的登录表单期待POST而您无法更改,则可能会出现问题。
编辑:
如果POST是您唯一的选择,也许您最好使用AJAX发布到表单而不是使用子浏览器。
答案 1 :(得分:3)
我一直在寻找解决方案,并且正在开发它。这在iPhone的儿童浏览器中不是开箱即用的。 所以,这里是我添加到插件的代码。 仅供参考,数据应为格式为字符串的字符串:arg1 = value1& arg2 = value2& foo = bar
<强> 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! 米尔顿。