【问题标题】:Intel XDK/Cordova onDeviceReady event does not fire英特尔 XDK/Cordova onDeviceReady 事件不会触发
【发布时间】:2015-05-16 18:48:28
【问题描述】:

首先我想说的是,所有的东西都可以在模拟器中运行,但是当我构建它并在设备上测试它时,它们就不行了。

我想将我的方向设置为横向,所以我按照以下示例进行操作:

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

当我在“测试”模式下使用它时,将文件推送到服务器上,然后从云端下载应用程序,它可以正常工作。

但是当我使用Build->从“Cordova 3.X Hybrid Mobile App Platforms”菜单中单击Build for android,然后下载并安装它时,它不起作用。

您可以说我可以从“Legacy Hybrid Mobile App Platforms”菜单构建应用程序,然后在“Assets”菜单中选择横向。是的,可行,但我也想使用hideStatusBar(),这也需要触发onDeviceReady 事件。

我正在使用 Android 4.1.2 的 Galaxy S2 和使用 Android 4.4.2 的 LG G2 上对其进行测试。

另外,我用模板开始了一个新项目,其中有以下几行:

// 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 和其他代码。

【问题讨论】:

  • 您确定设备插件已启用吗?转到项目窗格并查看 cordova 插件。
  • 是的,它已开启,但我决定使用 Cocoonjs 来封装应用程序。它完美地工作。我只是找不到任何合乎逻辑的解决方案。

标签: cordova event-handling intel-xdk


【解决方案1】:

也许这样的事情可以解决它。



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

间隔内的这段代码将在 200 毫秒的间隔内被调用,直到对象 'intel' 被定义。

【讨论】:

    【解决方案2】:

    好的,问题确实在于启用插件。事实证明,我必须在“包含的插件菜单”和“精选和自定义 Cordova 插件”中启用“设备”插件。 (就在它旁边)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多