我之前在2月23日更新之前在英特尔XDK平台上构建了一个应用程序,现在软件已经更新,当我尝试运行模拟器它只是崩溃。
之前我通过以下方式向进程php页面发送了一个get请求以进行登录。
$(document).ready(function(){
$('form.login').submit(function () {
var user = $(this).find("[name='user']").val();
var pass = $(this).find("[name='pass']").val();
var sublogin = $(this).find("[name='sublogin']").val();
// ...
$.ajax({
type: "POST",
url: "http://www.domain.com/data/apps/project1/process.php",
data: {
user : user,
pass : pass,
sublogin : sublogin,
},
success: function(response){
if(response == "1")
{
$("#responsecontainer").html(response);
window.location.href = "menu.html";
}
// Login failed
else
{
$("#responsecontainer").html(response);
}
//alert(response);
}
});
this.reset();
return false;
});
});
然而,似乎这是导致问题的代码片段,如果删除此项代码,项目将不再崩溃。
当我阅读英特尔XDK文档时,它只显示调用XML文件的HTTP请求。
所以我希望有人知道为什么会导致这个问题,或者我如何构建它以便英特尔XDK不会崩溃。
答案 0 :(得分:0)
关于通过模拟器引用的相对位置URL存在回归错误,正在进行修复。这仅与模拟器有关。您的应用程序应该可以在设备上使用App Preview并使用构建版本与测试选项卡一起使用。
答案 1 :(得分:0)
直到我们想出了一个针对模拟器崩溃的修复程序,这是一个解决方法。当您尝试使用window.location.href =“menu.html”更改当前页面的位置时,会出现此问题;并且模拟器无法在ajax调用期间解析相对路径。
请使用以下代码作为解决方法。
var newLocation = 'menu.html';
if ( window.tinyHippos ) {
// special case for emulator
newLocation = getWebRoot() + newLocation;
}
document.location.href=newLocation;
function getWebRoot() {
"use strict" ;
var path = window.location.href ;
path = path.substring( 0, path.lastIndexOf('/') ) ;
path += '/';
return path;
}
斯瓦特