gpt4 book ai didi

javascript - Cordova:始终 deviceready 尚未触发

转载 作者:行者123 更新时间:2023-12-03 02:32:16 27 4
gpt4 key购买 nike

我在 Cordova 方面还有另一个问题。我想在 Cordova 7.1.0 中使用插件“cordova.custom.plugins.exitapp”和“cordova-plugins-printer”。
在服务器端,我将 document.AddEventListener 构建为 $(document).ready(function() {});

.js:

$(document).ready(function(){

...

document.addEventListener("deviceready", exitFromApp, false);

...

}),


function exitFromApp() {

console.log("NAVIGATOR: " + navigator);
console.log("NAVIGATOR.APP: " + navigator.app);
console.log("NAVIGATOR.APP.EXITAPP: " + navigator.app.exitApp());

navigator.app.exitApp();
}


无论我是否使用 addEventListener,Android Studio 总是说:
- deviceready 在 5 秒后尚未触发。
- channel 未触发:onPluginsReady
- channel 未触发:onCordovaReady

但不同的是,addEventListener 不会调用 exitFromApp() 函数。
当我直接调用 exitFromApp() 时,它可以工作,但 navigator.app 未定义(或 cordova.plugins/window.plugins 未定义)。
cordova.js 在 header.php 中调用,因此始终可用。

如果我在平板电脑上通过index.html 使用插件,它就可以工作。

我已在 config.xml 中设置权限:

<access origin="*" />
<allow-navigation href="*" />
<allow-intent href="*" />

安装:
Cordova 7.1.0
cordova-plugin-inappbrowser 2.0.1
Cordova 插件网络信息2.0.1
cordova-插件-白名单 1.3.3
cordova.custom.plugin.exitapp 1.0.0
phonegap.plugin-barcodescanner 7.0.1
Cordova 插件打印机0.7.3

最佳答案

deviceready 事件在 $(document).ready() 之前触发,你想在两者都触发后做你的事情..试试这个..

var DomReady = new Promise(done=>$(document).ready(done));
var deviceReady = new Promise(done=>document.addEventListener("deviceready", done, false));
Promise.all[DomReady, deviceReady].then(()=>{
// both device and dom are ready
});

...或者您可以将 deviceReady 调用放在 documentready 调用之外,因为我确信设备就绪始终是第一个。

关于javascript - Cordova:始终 deviceready 尚未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48687104/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com