加载iframe后,Cordova在插件

时间:2017-03-13 01:47:15

标签: cordova

我有一个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,问题将被隔离到子页面。也就是说,主机中没有错误,但子页面仍然像以前一样显示错误。

1 个答案:

答案 0 :(得分:0)

对于遇到此问题的任何人,目前我找到解决此问题的唯一方法是不加载cordova.js,而是通过window.parent [plugin_name]

访问所有插件

不是真正的答案,因为我更愿意知道为什么预期的行为不起作用。