我相信您遇到了deviceready
之前开火的竞争条件platform.ready
。
deviceready
我的建议是处理之前platform.ready
和相反的两种情况。为此,您应该遵循此模式。
角度世界之外的某个地方,所以可能在你的启动 js 文件中。
document.addEventListener("deviceready", () => window['isCordovaReady'] = true, false);
然后你可以在你的initializeApp
方法中使用它
initializeApp(){
this.platform.ready().then(() => {
if(!!window['isCordovaReady']){
onDeviceReady();
} else {
document.addEventListener("deviceready", onDeviceReady, false);
}
function onDeviceReady() {
console.log(navigator.camera);
console.log("Cordova");
}
}
}
此外,您发布的代码中存在语法错误。
initializeApp(){
this.platform.ready().then(() => {
{ <-- This is extra and should be removed.
document.addEventListener("deviceready", onDeviceReady, false);
} <-- Missing a ');'
function onDeviceReady() {
console.log(navigator.camera);
console.log("Cordova");
}
}