【问题标题】:PhoneGap/ChildBrowser - POST App Form to ChildBrowserPhoneGap/ChildBrowser - 将应用程序表单发布到 ChildBrowser
【发布时间】:2012-02-16 19:11:27
【问题描述】:

我正在使用 PhoneGap 构建一个 iPhone 应用程序。我正在使用 ChildBrowser 插件。

如果我在应用程序中有一个带有用户名/密码的表单,我是否可以将这些信息发布到 www.mydomain.com/login.php 之类的 URL 并在 ChildBrowser 中打开?

请告诉我。

谢谢。

【问题讨论】:

    标签: ios xcode cordova phonegap-plugins


    【解决方案1】:

    您当然可以将 GET 参数传递给childBrowser.showWebPage()

    您可以在您的应用程序中拦截表单的提交并收集传递的字段名称和值(假设这是一个登录表单,所以说用户名和密码)并将它们作为参数传递给在 ChildBrowser 中打开的 URL。

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

    这是一个用于演示目的的相当简单的版本。让它变得更好并不需要太多。

    问题当然是它是通过 GET 发送的。如果您的登录表单需要 POST 并且您无法更改它,那么您可能会遇到问题。

    编辑:

    如果 POST 是您唯一的选择,也许您最好使用 AJAX 发布到表单而不是使用子浏览器。

    【讨论】:

    • 这是我的问题。登录表单只需要 POST。
    【解决方案2】:

    我一直在寻找解决方案,并结束了开发。这在 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;}
    

    子浏览器命令 我在 showWebPage 方法中添加了以下代码:

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

    HTH! 米尔顿。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多