【发布时间】:2018-05-16 15:32:57
【问题描述】:
我知道这是一个常见问题,但找到的所有解决方法都是“在 index.html 中包含 cordova.js”或“将 href="." 更改为 href="./""
我认为 cordova API 未加载到应用程序中,因为未调用 deviceready 回调。 但我仍然可以运行该应用程序(但使用 navigor.mediadevices 的组件不起作用)。
index.html
<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 和构建应用程序
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 的 package.json
...
"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"
]
}
【问题讨论】:
-
您是在设备上还是在网络浏览器中运行它?
-
我在安卓设备上运行。我的目标是为网络应用程序和移动应用程序共享相同的代码。 PWA 是一个很好的解决方法,但我们需要应用在 Play Store 和 Apple Store 上。