我在让基于 HTML 的 Adobe Air 应用程序正确运行时遇到了一些实际问题。我一直在 Aptana 中开发它,并在那里执行它是一种享受——没有任何错误。当我尝试通过 Chrome、Firefox(或者最重要的是)BlackBerry Playbook 模拟器运行相同的文件时,就会出现问题。当我尝试在任何这些环境中运行我的应用程序时,jquery 似乎没有运行。如果我使用 Chrome 检查元素并查看 .js 文件,则会出现两个错误 - “未捕获的类型错误 - 无法读取未定义的属性 'SQLConnection'”和“未捕获的类型错误 - 无法读取未定义的属性 '文件'。
知道什么通常会导致这些错误吗?HTML 文件是:
<html>
<head>
<title>Application Sandbox sample</title>
<link href="css/styles.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="lib/jquery/jquery-1.5.js"></script>
<script src="lib/air/AIRAliases.js" type="text/javascript"></script>
</head>
<body>
<div id="container">
<div id="topBar">
<h2 class="tripbar_title">Tripbook logo</h2>
<h2 class="tripbar_subtitle">Travel Tracking Made Simple</h2>
</div>
<div id="content">
<div id="main">
<ul id="navigation">
<a href="pages/menu.html" class="log_on_link"><li class="log_on_text">Log-on as <b class="first_name_text">First_Name</b> <b class="last_name_text">Last_Name</b> of <b class="company_name_text">Company_Name</b></li></a>
<a href="pages/register.html" class="register_link"><li class="register_link_text">Register a new user</li></a>
<a href="pages/switch_user.html" class="switch_user_link"><li class="switch_user_link_text">Switch Users</li></a>
<a href="pages/company.html" class="switch_employer_link"><li class="switch_employer_link_text">Switch Job</li></a>
</ul>
</div>
</div>
<div id="footer">
</div>
</div>
<script type="text/javascript" src="lib/welcome.js"></script>
</body>
</html>
并且 javascript 文件 (welcome.js) 开始:
// Bootstrap
$(document).ready(function(){
SetupDB();
displayMenu();
SuggestUser();
});
var log_in_first;
var log_in_last;
var log_in_company;
var db = new air.SQLConnection();
function SetupDB(){
var dbFile = air.File.applicationStorageDirectory.resolvePath("tripbook_base.db");
if (!dbFile.exists) { //
var dbTemplate = air.File.applicationDirectory.resolvePath("tripbook_base.db");
dbTemplate.copyTo(dbFile, true);
} //
try {
db.open(dbFile);
}
catch (error) {
air.trace("DB error:", error.message);
air.trace("Details:", error.details);
}
}