首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Angular6 + Cordova : cordova未加载

Angular6 + Cordova : cordova未加载
EN

Stack Overflow用户
提问于 2018-05-16 15:32:57
回答 1查看 1.3K关注 0票数 1

我知道这是一个常见的问题,但所有的解决办法都是“包括cordova.js in index.html”或"change href=".“to href="./"”

我认为没有在应用程序中加载cordova API,因为没有调用deviceready回调。但是我仍然可以运行这个应用程序(但是使用navigagor.mediadevices的组件不起作用)。

index.html

代码语言:javascript
复制
<base href="./">
<script src=”cordova.js”></script>
<script>
window.isready = false;
function ready(){
    alert('test');
    console.log('test');
    window.isready = true; // this is always false
}
document.addEventListener('deviceready', ready, false);
</script>

该事件从未被触发。

我如何安装cordova &构建应用程序

代码语言:javascript
复制
npm install -g cordova
cordova create cordova
cd cordova && cordova platforms add android
rm -rf cordova/www/*
ng build --prod --aot --output-path=cordova/www
cd cordova && cordova build android

cordova's package.json

代码语言:javascript
复制
... 
"dependencies": {
    "cordova-android": "^7.0.0",
    "cordova-plugin-device": "^2.0.2",
    "cordova-plugin-file": "^6.0.1",
    "cordova-plugin-media-capture": "^3.0.2",
    "cordova-plugin-whitelist": "^1.3.3"
},
"cordova": {
    "plugins": {
        "cordova-plugin-whitelist": {},
        "cordova-plugin-media-capture": {},
        "cordova-plugin-device": {}
    },
    "platforms": [
        "android"
    ]
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-16 15:49:27

deviceready事件处理程序的设置是正确的。问题似乎在于您包含了cordova.js。下面是您应该做的疑难解答:

  1. 在上面的代码示例中,您使用了倾斜双引号而不是普通双引号来包含cordova.js

试着改变这个:

<script src=”cordova.js”></script>

对此:

<script src="cordova.js"></script>

  1. 在你的安卓设备上运行这个应用程序,通过USB将你的设备连接到你的电脑上,让开发者在你的设备上调试,并且打开chrome://inspect,在它运行的时候对它进行实时检查。确保cordova.js确实存在,并且在应用程序引导时成功地加载了它。
  2. 包含cordova.js的顺序可能会产生影响。您可能需要将<script src="cordova.js"></script>移到设置deviceready事件处理程序的<script>块下。
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50374888

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档