2012-08-10 2 views
4

Android 및 iPhone의 웹 브라우저에서 양식 제출을 열 때 phonegap에 문제가 있습니다. 나는이 같은 JS와 양식을 제출하려면 : 그래서이 스크립트의 실행이 장치에 저장된 파일에서 발생 Phonegap 웹 브라우저에서 양식을 외부 도메인에 제출

<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"에 지불 프로세서 양식을 작성해야하기 때문에. 사용자가 앱을 다시 입력하면 결제가 제대로 처리되었는지 확인할 수 있습니다.

임은 안드로이드에서 폰갭 2.0.0을 사용하여 나는 config.xml 파일에서이 설정을 시도했다, 그러나 나는 또한, Cordava.plist에 NO로 설정 플래그 OpenAllWhitelistURLsInWebView이 아이폰에

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

도움이되지 않았다 도와주지 마라.

도움을 주시면 감사하겠습니다.

답변

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

지불 처리 사이트의 양식이기 때문에 제가 할 수 있다고 생각하지 않습니다. 그것이 합법적인지 여부를 모르겠습니다. 나는 사용자가 앱에서 빠져 나오기를 꺼려하지 않는다. 나는 그가 카드 정보를 실제 지불 사이트에주는 보안을 사용자에게 전적으로 부여하기를 선호한다. –

+0

사용자를 앱에 다시 가져올 수있는 또 다른 유일한 방법은 앱의 도메인에 대한 '의도'를 만든 다음 어떻게 든 지불 게이트웨이를 사용하여 '의도'또는 '의도'로 읽는 링크로 사용자를 전달하는 것입니다. 그들에게 확인 페이지에 링크를달라고하십시오. – Jasper

+0

죄송합니다. 분명하지 않은 경우 지금 게시물을 수정하겠습니다. 사용자가 앱에 머 무르지 않고 사용자 웹 브라우저에서 제출을 열고 싶습니다. 보안상의 이유로 진행해야하는 유일한 방법입니다. –

관련 문제