我正在构建将要用Cordova 8.1.2包装的全平台Angular 6 APP。不幸的是,我无法启动 deviceready 事件。
我有两个独立的项目,一个用于Angular,一个用于Cordova,我能够使用以下命令构建以构建Angular项目并创建一个android apk:
ng build --prod --base-href . --output-path ../Cordova/CordovaMobileApp/www/ & cd ../Cordova/CordovaMobileApp & cordova run android & cd ../../NxAngularMVI
现在,我需要使用Cordova插件,为此,我需要检测 deviceready 事件。
在我的index.html头中,我已经包含了
<script type=”text/javascript” src=”cordova.js”></script>
在我的main.ts文件中,我试图等待事件发生以引导我的应用程序。
const onDeviceReady = () => {
console.log('Bootstrap ON!');
platformBrowserDynamic().bootstrapModule(AppModule).catch(err =>
console.log(err));
};
document.addEventListener('deviceready', onDeviceReady, false);
由于从不触发deviceready事件,因此该应用程序永远不会初始化。我尝试了几种在此引导方法的堆栈溢出中发现的变体,但无济于事。我尝试过重新安装从框架到平台再到插件的所有cordova部件,但没有任何帮助。我已经在Galaxy S9和Motorola G5上进行了测试。
由于Cordova API提供的此功能对于我的项目是必不可少的,因此需要您的帮助。谢谢!
答案 0 :(得分:2)
正如在该线程Is there a way to submit a reactjs PWA on Google Play?中所回答的那样,您可以在Chrome控制台中调试cordova应用程序,请按照以下步骤操作
由于该应用程序无法启动,因此您可以检查Chrome控制台中的错误, 让我们知道
欢呼
答案 1 :(得分:0)
我遇到了同样的问题。
我的解决方案:
将<script type=”text/javascript” src=”cordova.js”></script>
内的<body>
移动到<app-root>
的旁边。当我将<head>
设备中的脚本标签准备就绪时,永远不会触发。
我通过查看使用cordova cli生成的示例项目来弄清楚这一点。如果查看它们的index.html,它们的主体中将包含script标记。