2017-03-13 92 views
-1

我有一个Cordova(6.5.0)应用程序,它运行良好,直到我使用iframe访问另一个页面。其他页面已经被下载并保存到一个文件夹中cordova.file.externalDataDirectory 的下载页面也使用cordova.js的页面看起来像这样加载iframe后科尔多瓦在插件上失败

<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

对于任何人遇到这样的问题,我现在已经解决这个问题找到了唯一的办法就是不加载cordova.js而是通过window.parent [PLUGIN_NAME]

不是一个真正的答案,访问所有的插件我想知道为什么预期的行为不起作用。

相关问题