2017-01-20 1 views
0

Cordova를 사용하여 모바일 개발을 할 때 원격 웹 응용 프로그램을 여는 방법이 있는지 알고 싶습니다. 원격 웹 응용 프로그램에서 버튼을 클릭하면 Cordova 환경에서 Java 스크립트가 실행됩니까?Cordova 사용 webview

예를 들어, 내 모바일 앱은 웹보기를 통해 앱 서버에 호스팅 된 웹 페이지를 열어 사용자에게 라이센스를 읽고 동의한다는 것을 사용자에게 묻습니다. 사용자는 웹 페이지에서 "수락"또는 "수락하지 않음"을 클릭해야합니다.

사용자가 "동의"를 클릭하면 모바일 앱에서 다른 페이지를 불러 와서 사용자가 모바일 앱 사용을 계속할 수 있도록 노력하겠습니다.

이것이 가능합니까?

감사합니다.

답변

3

첫째, 제대로 작동하려면 원격 서버에 완전히 의존하는 모바일 앱을 만드는 것이 좋지 않습니다. 사용자의 인터넷 연결이 끊어 지거나 간헐적 인 경우 어떻게해야합니까? (그것은 내가 살고있는 곳에서 많이 발생합니다).

그러나 하나의 해결책은 iframe을 사용하여 원격 웹 응용 프로그램 콘텐츠를로드하고 cross-frame messaging은 원격 웹 응용 프로그램과의 UI 상호 작용 결과를 Cordova 응용 프로그램에 전달하는 것입니다. 원격 웹 응용 프로그램 URL을 적절히 허용해야합니다. 이 같은

뭔가 :

코르도바 응용 프로그램의 index.html을

<html> 
    <head> 
     <script type="text/javascript" src="cordova.js"></script> 
     <script type="text/javascript"> 
      function onDeviceReady(){ 
       window.addEventListener("message", onFrameMessage, false); 
      } 

      function onFrameMessage(event){ 
       var eventName = event.data[0]; 
       if(eventName === "terms_result"){ 
        var accepted = event.data[1] == 1; // == will match 1 or "1" 
        if(accepted){ 
         // Do something - e.g. change to homepage 
        }else{ 
         // Do something else - e.g. display an error message 
        } 
       } 
      } 

      document.addEventListener("deviceready", onDeviceReady); 
     </script> 
    </head> 
    <body> 
     <div data-role="page" id="terms"> 
      <iframe src="http://example.com/my/remote/webapp" style="border: 0; width: 100%; height: 100%"></iframe> 
     </div> 
     <div data-role="page" id="home"> 
      <!-- Your home page content --> 
     </div> 
    </body> 
</html> 

원격 웹 애플리케이션의 HTML

<html> 
    <head> 
     <script type="text/javascript"> 
      function accept(result){ 
       window.parent.postMessage(["terms_result", result], "*"); 
      } 
     </script> 
    </head> 
    <body> 
     <button onclick="accept(1)">Accept</button> 
     <button onclick="accept(0)">Not Accept</button> 
    </body> 
</html> 
관련 문제