Приложение Adobe Air для Playbook на основе HTML - невозможно прочитать свойство SQLConnection из неопределенного - PullRequest
1 голос
/ 29 марта 2011

У меня возникли реальные проблемы с корректной работой приложения Adobe Air на основе HTML.Я разрабатывал его в Аптане, и его выполнение - это угощение - никаких ошибок.Проблема возникает, когда я пытаюсь запустить тот же файл через Chrome, Firefox (или, что наиболее важно), симулятор BlackBerry Playbook.Когда я пытаюсь запустить свое приложение в любой из этих сред, создается впечатление, что jquery не работает.Если я использую Chrome для проверки элемента и просмотра .js-файла, он обнаруживает две ошибки: «Uncaught TypeError - невозможно прочитать свойство SQLConnection of undefined» и «Uncaught TypeError - невозможно прочитать свойство« File »undefined.

Любая идея, что обычно вызывает эти ошибки? 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);
        }
}

1 Ответ

0 голосов
/ 29 марта 2011

Символ "воздух" не определен.Поэтому утверждение:

var db = new air.SQLConnection(); 

не будет работать.Я не знаю, что это за файл «AIRAliases.js», но если вы ожидаете, что он определит для вас символ «воздух», он явно не работает.

edit - ok googling для «AIRAliases.js» указывает на то, что он содержит некоторое «удобное» переименование некоторых объектов Air.Таким образом, это, вероятно, не прямая проблема.Я подозреваю, что проблема заключается в том, что вы пытаетесь загрузить свой HTML и JavaScript непосредственно в браузер, ожидая, что он сможет использовать возможности, которые он использует в Air.Не может.

...