我有一个Cordova(6.5.0)应用程序运行正常,直到我使用iframe访问另一个页面。另一个页面已下载并保存到cordova.file.externalDataDirectory中的文件夹中 下载的页面也使用cordova.js页面看起来像这样
<html>
<head>
<base href="file:///android_asset/www/" >
<script type="text/javascript" src="cordova.js"></script>
<title>Test page</title>
</head>
<body>
Test page
<script>
document.addEventListener('deviceready', function(){
console.log("ready");
}, false);
</script>
</body>
</html>
在iframe 2中加载页面后,调试器中将显示消息
deviceready has not fired after 5 seconds.
cordova.js:1216 Channel not fired: onFileSystemPathsReady
从那时起主机应用程序无法调用任何插件。 但是,如果我从iframe页面删除cordova.js链接,则主机应用程序不受影响。我需要iframe页面才能访问cordova功能,如何在不为主机创建问题的情况下执行此操作?
编辑: 通过从iframe更改为inAppBrowser,问题将被隔离到子页面。也就是说,主机中没有错误,但子页面仍然像以前一样显示错误。
答案 0 :(得分:0)
对于遇到此问题的任何人,目前我找到解决此问题的唯一方法是不加载cordova.js,而是通过window.parent [plugin_name]
访问所有插件不是真正的答案,因为我更愿意知道为什么预期的行为不起作用。