我正在使用 PhoneGap 构建一个 iPhone 应用程序。我正在使用 ChildBrowser 插件。
如果我在应用程序中有一个带有用户名/密码的表单,我是否可以将这些信息发布到像 www.mydomain.com/login.php 这样的 URL 并在 ChildBrowser 中打开它?
请告诉我。
谢谢。
我正在使用 PhoneGap 构建一个 iPhone 应用程序。我正在使用 ChildBrowser 插件。
如果我在应用程序中有一个带有用户名/密码的表单,我是否可以将这些信息发布到像 www.mydomain.com/login.php 这样的 URL 并在 ChildBrowser 中打开它?
请告诉我。
谢谢。
您当然可以将 GET 参数传递给childBrowser.showWebPage()
.
您可以在应用程序中拦截表单的提交并收集传递的字段名称和值(假设这是一个登录表单,所以说用户名和密码)并将它们作为参数传递给在 ChildBrowser 中打开的 URL。
childBrowser.showWebPage('https://www.mydomain.com/login.php?username='+username+'&password='+password)
这是一个用于演示目的的相当简单的版本。让它变得更好并不需要太多。
问题当然是它是通过 GET 发送的。如果您的登录表单需要 POST 并且您无法更改它,那么您可能会遇到问题。
编辑:
如果 POST 是您唯一的选择,也许您最好使用 AJAX 发布到表单而不是使用子浏览器。
我一直在寻找解决方案,并结束了开发。这在 iPhone 的 childbrowser 中并不是开箱即用的。所以,这里是我添加到插件中的代码。仅供参考,数据应该是格式为: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];
}
!弥尔顿。