Cordova DeviceRady尚未使用sencha touch 2在phonegap 2.9.0中启动

Cordova DeviceRady尚未使用sencha touch 2在phonegap 2.9.0中启动,cordova,sencha-touch-2,Cordova,Sencha Touch 2,我使用PhoneGap 2.9.0和SenchaTouch来开发我的Android应用程序(targetSdkVersion 16) 当我在Chrome中启动应用程序时,我得到了这样的日志: Falling back on PROMPT mode since _cordovaNative is missing. Expected for Android 3.2 and lower only. cordova.js:912 deviceready has not fired after 5 sec

我使用PhoneGap 2.9.0和SenchaTouch来开发我的Android应用程序(targetSdkVersion 16)

当我在Chrome中启动应用程序时,我得到了这样的日志:

Falling back on PROMPT mode since _cordovaNative is missing. Expected for Android 3.2 and lower only. cordova.js:912
deviceready has not fired after 5 seconds. cordova.js:6725
Channel not fired: onCordovaConnectionReady cordova.js:6718
Channel not fired: onCordovaInfoReady  cordova.js:6718
当我在三星平板电脑(Android 4.1.2)上测试它时,第一行消失了,但3个事件始终没有触发

然而,SenchaTouch似乎工作得很好:视图显示和交互工作与我预期的一样

以下是index.html的标题部分:

 <head>
    <meta charset="UTF-8">
    <title>title</title>

    <!-- The line below must be kept intact for Sencha Command to build your application -->
    <script id="microloader" type="text/javascript" src="touch/microloader/development.js"></script>

    <style type="text/css">
       some css here
    </style>

    <script type="text/javascript" charset="utf-8" src="pg/cordova.js"></script>      
    <script type="text/javascript" charset="utf-8" src="pg/barcodescanner.js"></script>  

 </head>

标题
这里有一些css
我使用一些phonegap API,例如照相机和文件。由于PhoneGap接收never deviceready事件,API不可用,因此navigator.camera未定义

我做了一个拥抱研究,但我所测试的并没有解决问题。欢迎任何意见
提前感谢

我建议您尝试使用干净的非sencha html,只是为了跟踪错误是否来自sencha或phonegap

加载URL时硬编码超时。发生此超时是因为无法计算Sencha Touch生成的页面大小。不幸的是,我找不到我过去用来解决这个问题的资源,所以如果我错了,请纠正我,但我的解决方案是创建一个html文件,重定向到实际的index.html

<!DOCTYPE html>

<!-- Launch the generated index.html file to prevent Cordova/PhoneGap timeouts -->
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>AppName</title>
    <script>
        window.location = './index.html';
    </script>
</head>
<body></body>
</html>

AppName
window.location='./index.html';

也有同样的问题,但在我的例子中,这是因为我在config.xml中引用了插件,而我没有在应用程序中实例化插件

简单地注释它们,直到我在代码中引用它们,就会立即得到“Phonegap已准备就绪”

感谢:

根据(WebKit部分),已知Cordova/Phonegap应用程序当前因用户代理错误而损坏

应用此临时“修复程序”解决了我在“deviceready”事件未被触发时遇到的问题

在关闭body标签之前,您需要包括cordova插件,如下所示

您能再多给我一些说明吗?我不知道如何设置“非sencha”html进行测试。对不起,我只是指一个html示例。您是否尝试了“示例”中包含的资产?示例有效,我收到了事件。我怀疑加载Sencha Touch的时间是否太长。我在sencha的microloader之前尝试了cordova.js:没有触发任何事件,我有一个白色屏幕。我建议使用sencha cmd生成应用程序,然后再次构建它。请记住,您应该使用sencha应用程序构建包,然后将构建/应用程序/包复制到您的android资产中。另外,在app.json中添加cordova.js,这样您就不会在index.html中触碰任何东西。然后,为了利用“就绪事件”,可以在app.js::launch()中添加一些内容。我尝试在app.js的lanch函数中记录navigator.camera,它定义得很好。然而,当我后来调用它时,它变得“未定义”。我的应用程序处于导航视图中(我不知道这是否重要),您可以详细介绍一下您的解决方案吗?我确实有这个问题,但我不能理解你的解决方案。这是一个相当旧的线程,所以我希望它仍然有用。我的建议是从confix.xml中删除除初始插件以外的所有内容,然后查看它是否正确加载。我的错误是因为在我的xml中添加了额外的元素,但没有在我的应用程序中调用它们——所以它似乎被卡住了,等待事件在页面上触发。你能分享一些代码吗?我解决了。问题是Sencha Touch micro loader包含了两次PhoneGap.js,原因是配置错误,并且在这方面的文档不清楚
you need to include cordova plugin before closing of body tag, as follows
<!doctype html>
<html>
    <head>
    </head>
    <body>

        <script src='cordova.js' type='text/javascript'></script>
        <script src='index.js' type='text/javascript'></script>
    </body>
</html>