Я считаю, что вы работаете в состояние гонки, где 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");
}
}