2013-08-21 6 views
3

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

55435/js/main.js:9:ReferenceError: Can't find variable: 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> 

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

ответ

2

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

+0

Благодаря вам, что помогло – AleshaOleg

1

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

+0

функция больше не используется для использования API/пространства имен, вместо этого используется привилегия, проверьте мой ответ. –

1

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

This is how you declare the privileges или вы можете просто добавить эту строку:

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

в config.xml,

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

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

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

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

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

+0

, он не работает, даже я заполнил выше в xml. –

+0

@AlanLee Вещи могли дать изменение в среднем времени, попробуйте использовать IDE, чтобы добавить привилегии –

+1

Будущие читатели, обратите внимание, что http://tizen.org/privilege/tizen уже устарел в данный момент. – Konstantin

1

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

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

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

3

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

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

+1

Это ответ, который сработал для меня. Когда я вызываю функцию 'tizen.' из файла' .js' в корень моего '.wgt', он работает; когда я вызываю ту же функцию из файла '.js' в подкаталоге, он дает эту ошибку пространства имен. – String