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