Android 플랫폼에서 완벽하게 실행되는 PhoneGap 프로젝트가 있지만 WP8에서는 실행되지 않습니다.CROS (Cross Domain Resources Share)가 PhoneGap의 Windows Phone 8에서 작동하지 않는 것 같습니다.
프로젝트가 생성 될 때 생성되는 기본 페이지 인 index.html을로드 한 후 페이지를 _layout.html이라는 새 페이지로 리디렉션합니다.
여기 내 페이지로 리디렉션하기위한 코드가있는 index.js (내 PhoneGap 내장 코드)입니다. 여기
var app = {
// Application Constructor
initialize: function() {
this.bindEvents();
},
// Bind Event Listeners
//
// Bind any events that are required on startup. Common events are:
// `load`, `deviceready`, `offline`, and `online`.
bindEvents: function() {
document.addEventListener('deviceready', this.onDeviceReady, false);
},
// deviceready Event Handler
//
// The scope of `this` is the event. In order to call the `receivedEvent`
// function, we must explicity call `app.receivedEvent(...);`
onDeviceReady: function() {
app.receivedEvent('deviceready');
// THIS IS THE ONLY CODE I WROTE IN THIS BUILT-IN JAVASCRIPT CODE
window.setInterval(function() {
window.location.href = '_layout.html';
}, 3000);
//---------------MY CODE ENDS--------------------------------------
},
// Update DOM on a Received Event
receivedEvent: function(id) {
var parentElement = document.getElementById(id);
var listeningElement = parentElement.querySelector('.listening');
var receivedElement = parentElement.querySelector('.received');
listeningElement.setAttribute('style', 'display:none;');
receivedElement.setAttribute('style', 'display:block;');
console.log('Received Event: ' + id);
}
};
은이 페이지는 "franva"라는 사업부를 가지고 볼 수 있듯이 _layout.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="format-detection" content="telephone=no" />
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height" />
<link rel="stylesheet" type="text/css" href="css/index.css" />
<title>MyApp</title>
</head>
<body onload="loadPage('_resultlist.html');">
<div class="panel">
<div class="row" id="Title" style="text-align: center; vertical-align: central; position: relative; left: -6%; top: 10%; margin-bottom: -30px; margin-top: -20px;">
<img src="img/logo.png" style="width: 150px; height: 100px; text-align: center; vertical-align: central;" />
</div>
<hr />
<div id="franva" style="height: 300px; display:inline-block; width: 300px;">
</div>
<hr />
<div id="search" style="text-align: center;">
<input type="button" class="searchbutton" title="Search" value="Search" />
</div>
</div>
<script type="text/javascript" src="js/jquery-2.0.3.js"></script>
<script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript">
function loadPage(url, onleave, onenter) {
console.log("loadPage(" + url + ")");
// If onleave function specified
if (onleave) {
onleave();
}
var xmlhttp = new XMLHttpRequest();
// Callback function when XMLHttpRequest is ready
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState === 4) {
if (xmlhttp.status === 200) {
console.log("Received content" + xmlhttp.responseText);
$("#franva").html(xmlhttp.responseText);
// If onenter function specified
if (onenter) {
onenter();
}
}
else {
$("#franva").html("Error loading page " + url);
}
}
};
xmlhttp.open("GET", url, true);
xmlhttp.send();
}
jQuery.isUnsafe = true;
function loadPageAjax(pageurl)
{
$.ajax({
url: pageurl,
context: document.body,
dataType: "html"
}).done(function (data) {
alert("Ajax data = " + data);
$("#franva").html(data);
});
}
</script>
</body>
</html>
의 코드이며,이 사업부로, 다른 페이지, _resultlist.html로드 . 여기
내가 만이이 페이지를 생성<div id="result-list" style="width: 100%;">
<div class="result-row">
<div class="left">
<img src="img/tv1.jpg" />
</div>
<div class="right">
<p><strong>Samsung XT7290</strong></p>
<p>27 inch, AU$ 1777</p>
</div>
</div>
<div class="result-row">
<div class="left">
<img src="img/tv2.jpg" />
</div>
<div class="right">
<p><strong>Samsung XT7290</strong></p>
<p>27 inch, AU$ 1777</p>
</div>
</div>
<div class="result-row">
<div class="left">
<img src="img/tv3.jpg" />
</div>
<div class="right">
<p><strong>Samsung XT7290</strong></p>
<p>27 inch, AU$ 1777</p>
</div>
</div>
</div>
_resultlist.html, 그들보다 더 아무것도 코드입니다. (오도 포함 JQuery와 그 계산합니다.)
내가 클라우드 빌드를 실행 PhoneGap on Android 앱을 생성하는 웹 사이트를 구축하고 내 Android 휴대 전화에서 작동합니다. 온라인으로 생성 된 Windows Phone 앱을 설치할 수 없습니다 (오류 메시지가 나타납니다 :이 회사 앱을 설치할 수 없음 ...)
그래서 Visual Studio 2012에 빌드했습니다.하지만 div franva의 콘텐츠를로드 할 수 없습니다. .
코드를 실행하는 WebBrowser가 있기 때문에 CORS는 PhoneGap에서 문제가되지 않는다고 PhoneGap 문서를 살펴 보았습니다. 사실 Android 1 대, Windows Phone 8이 아닌 이유는 무엇입니까?
전체 아이디어은 중복 된 레이아웃 부분 코드를 반복해서 쓸 필요가 없도록 레이아웃 페이지가 있어야합니다. _resultlist.html 페이지는 div의 내용으로 사용되며 Ajax 호출로 가져온 데이터와 같은 다른 리소스로 대체 될 수 있습니다.
또한 WP 8에서 사용 된 IE의 버전에 대한 연구를 수행했습니다. 대답은 IE 10입니다. IE10에 대해 누군가가 CORS를 지원한다고 말하면서 다른 사람들은 아무 말도하지 않습니다 .... 나는 혼란 스럽습니다. ...
나는이 문제에 며칠 동안 고생했습니다.
누군가가 나를 위해 올바른 방법을 지적 할 수 있다면 정말 감사드립니다.
미리 감사드립니다.
ooooooops ... 우리 전문가는 어디에 있습니까 ??? – Franva
2 일째, 안녕하세요 ~~~? – Franva
답변을 얻었습니까? – Apqu