2015-03-22 3 views
1

Сначала я хочу сказать, что все работает в эмуляторах, но когда я его создаю и тестирую на устройстве, это не так.Событие Intel XDK/Cordova onDeviceReady не срабатывает

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

document.addEventListener("intel.xdk.device.ready", onDeviceReady, false);    
function onDeviceReady(){ 
    intel.xdk.device.setRotateOrientation('landscape'); 
    intel.xdk.device.hideSplashScreen(); 
} 

Когда я использую его в режиме «Тест», раздвинуть файлы на сервере, а затем загрузить приложение из облако это прекрасно работает.

Но когда я создаю приложение, используя Build-> Clicking Build для Android из меню «Cordova 3.X Hybrid Mobile App Platforms», загрузите его и установите, он не работает.

Вы можете сказать, что я мог бы создать приложение из меню «Legacy Hybrid Mobile App Platforms», а затем в меню «Assets» выбрать пейзаж. Да, это работает, но я хочу также использовать hideStatusBar(), который также требует, чтобы произошло событие onDeviceReady.

Я тестирую его на Galaxy S2 с Android 4.1.2 и LG G2 с Android 4.4.2.

Кроме того, я начал новый проект с шаблоном и есть эти строки:

// Listen to deviceready event which is fired when Cordova plugins are ready 
document.addEventListener('deviceready', function() { 
    // Call splashscreen API to hide the splash. 
    navigator.splashscreen.hide(); 
}); 

Но они также не работают.

Похоже, что событие deviceReady не срабатывает. Любая идея, что может быть проблемой или предложениями для обходных решений? Я просто хочу, чтобы приложение было в ландшафте, а строка состояния была скрыта. Мне больше ничего не нужно от XDK.

PS: Если потребуется, могу опубликовать index.html и другой код.

+0

Вы уверены, что плагин устройства включен? Перейдите в панель проектов и посмотрите на плагины cordova. –

+0

Да, он включен, но я решил использовать Cocoonjs для закрытия приложения. Он работает отлично. Я просто не мог найти никакого логического решения. – chnging

ответ

0

Хорошо, проблема заключалась в том, чтобы включить плагины. Оказалось, что мне нужно включить оба плагина «Устройство» в «Включение плагинов», а также в «Рекомендуемые и настраиваемые плагины Кордовы». (рядом с ним).

0

Возможно, что-то подобное может решить это.



    interval = setInterval(function(){ 
     if(intel){ 
      //your block code inside the onDeviceReady() 
      clearInterval(interval); 
     } 
    },200); 

Этот код внутри интервала будет вызываться в интервале 200 мс до тех пор, пока не будет определен объект «intel».

Смежные вопросы