Tizen SDK: не удается найти переменную: tizen

Я пытаюсь создать веб-приложение с использованием Tizen SDK. Когда я запускаю приложение, все в порядке, но когда я нажимаю кнопку "Назад" на эмуляторе, ничего не происходит, и я вижу сообщение:

55435 / js / main.js: 9: ReferenceError: Невозможно найти переменную: tizen

я смотрел на main.js и есть код:

//Initialize function
var init = function () {
    // TODO:: Do your initialization job
    console.log("init() called");

    // add eventListener for tizenhwkey
    document.addEventListener('tizenhwkey', function(e) {
        if(e.keyName == "back") {
            tizen.application.getCurrentApplication().exit(); // HERE IS THE ERROR
        }
    });
};
$(document).bind('pageinit', init);

Просто alert(window.tizen) сказал, что это undefined поэтому я подумал, что какой-то файл js не был прикреплен к проекту. Вот сценарии, сгенерированные Tizen SDK:

<script src="tizen-web-ui-fw/latest/js/jquery.js"></script>
<script src="tizen-web-ui-fw/latest/js/tizen-web-ui-fw-libs.js"></script>
<script src="tizen-web-ui-fw/latest/js/tizen-web-ui-fw.js" data-framework-theme="tizen-white"></script>
<script type="text/javascript" src="./js/main.js"></script>

Я думаю, что какой-то сценарий должен быть добавлен, но я не знаю, какой.

5 ответов

Решение

Я не знаю, как это работает сейчас, но я нашел решение. Я просто изменил рабочее пространство, и это сработало.

Пространство имен 'tizen', кажется, исчезает ни на чем, кроме файлов непосредственно в.wgt. Так что, если он загружает веб-страницу откуда-то еще, "тизен" просто уходит.

Обходное решение, которое может работать для вас, - это наличие файла.js /.html локально внутри виджета, который выполняет то, что вам нужно для вас... и затем все остальное загружается динамически. В нашем случае у нас был локальный.html-файл, выполняющий tizen.registerKey для нашего приложения, а затем перенаправление window.onload к нашему размещенному решению.

tizen Пространство имен обычно доступно только после того, как правая привилегия была объявлена ​​в config.xmlТо же самое касается любого другого API.

Вот как вы объявляете привилегии или можете просто добавить эту строку:

<tizen:privilege name="http://tizen.org/privilege/tizen"/>

в config.xml,

Только после того, как установлена ​​привилегия, создается API Tizen Web Device (под window.tizen Пространство имен).

Точно так же, если вы хотите, чтобы API был доступен window.tizen.download Пространство имен вам нужно иметь:

<tizen:privilege name="http://tizen.org/privilege/download"/>

добавлен в ваш список привилегий в config.xml,

Для получения полного списка привилегий используйте IDE или проверьте этот список.

Какую версию SDK вы пытаетесь использовать? Я думаю, вот решение: http://www.mail-archive.com/general@lists.tizen.org/msg00092.html

На самом деле вам не нужно устанавливать привилегию в config.xml для использования API tizen.application.xx.

Без установки каких-либо привилегий, код tizen.application.getCurrentApplication().exit() будет работать нормально.

Это может быть временная ошибка на платформе. Как вы знаете, сейчас Tizen очень нестабилен, поскольку только растет.

Просто отключите контрольную кнопку "Включить редактирование в реальном времени" в меню "Запуск конфигураций" (щелкните правой кнопкой мыши проект -> "Запуск от имени" -> "Выполнить конфигурации...")

Другие вопросы по тегам