2012-08-10 81 views
4

我有一个phonegap的问题,以打开表单在Android和iPhone上的Web浏览器上提交。我想提交表单与JS是这样的:Phonegap开放表单提交到外部域在Web浏览器上

<html> 
    <body> 
    <form target="_blank" action="https://externalDomain.com"> 
     <input value="123" /> 
     <input value="456" /> 
    </form> 
    <script> 
     form.submit(); 
     // do something else 
    </script> 
    </body> 
</html> 

所以这个脚本的执行发生在存储设备上的文件可以说“的index.html”,我想提交到浏览器中打开,因为我需要用户填写“externalDomian.com”上的付款处理表单。用户将再次进入该应用程序,他可以检查付款是否被正确处理。

进出口使用的PhoneGap 2.0.0在Android上我试过的config.xml这个配置,但它并没有帮助

<access origin="https://externalDomain.com" browserOnly="true" /> 

在iPhone上我有标志OpenAllWhitelistURLsInWebView设置为NO上Cordava.plist,也没有帮助。

任何帮助将不胜感激。

回答

0

做一个AJAX提交表单,这样用户实际上并不重定向到一个外部网站,但保存在您的应用程序:

<html> 
    <body> 
    <form id="foo-form" target="_blank" action="https://externalDomain.com"> 
     <input value="123" /> 
     <input value="456" /> 
    </form> 
    <script> 
    $('#foo-form').on('submit', function() { 

     //create AJAX request to submit form 
     $.get(this.action, $(this).serialize(), function (response) { 
      //the `response` variable now holds what the server returned after the form submission 
     }); 

     //stop regular submission of form 
     return false; 
    }); 
    </script> 
    </body> 
</html> 

然后,您可以添加到DOM的响应,从而使用户填写外部表单。然后绑定到该表单并执行另一个AJAX提交。

+0

我不认为我可以这样做,因为它是来自付款处理网站的表单。我不知道这是否合法。我不介意用户退出应用程序,我完全喜欢这样做,因此我也向用户提供了他将卡信息发送给真实付款网站的安全性。 – 2012-08-10 17:47:32

+0

我认为让用户重新进入你的应用程序的唯一方法是为你的应用程序的域创建一个'intent',然后以某种方式让你的支付网关将用户转发到一个可以被'intent'读取的链接,或者让他们在确认页面上放置一个链接。 – Jasper 2012-08-10 17:59:21

+0

对不起,如果我不太清楚,我现在要编辑帖子。我不希望用户留在应用程序中,我想在用户Web浏览器上打开提交,仅出于安全原因,实际上是继续进行的唯一方式。 – 2012-08-10 18:04:39

相关问题