cordova window.location.href行为错误

时间:2015-07-13 12:21:24

标签: javascript android html cordova

在我的assets/www/index.html中,我正在尝试打开html 使用此javascript命令/data/data/files/xyz/index.html

window.location.href = cordova.file.dataDirectory + "xyz/index.html";

../xyz/index.html中,它还包含同一xyz目录中存在的cordova.js

  <script type="text/javascript" src="cordova.js"></script>  

可以加载index.html,但在catlog显示错误如下

  

W / CordovaWebViewImpl:阻止(可能是子框架)导航到   不允许的网址:gap:// ready

我的方法有问题吗?使用window.location.href在数据文件夹中打开另一个cordova应用程序是错误的吗?

编辑:我已经找到了根本原因,那就是我在/data/data/files/xyz/cordova.js中的cordova.js与资产文件夹中的版本不同。我复制了相同的cordova js版本后,可以加载它而不会出现错误警告。感谢。

1 个答案:

答案 0 :(得分:1)

您不需要使用“cordova.file.datadirectory”。仅当您使用文件插件访问数据文件时才会这样,例如在游戏或级别数据中保存高分。您不使用该插件将页面加载/卸载到当前的Web视图中。

您希望所有HTML文件与“index.html”位于同一文件夹分支中。假设一个像这样的目录结构:

/ index.html      <!---- this is your current index.html

/ page2.html      

/ js / index.js

/ xyz /index.html

您所要做的只是window.location='xyz/index.html'。但是,如果您正在为iOS开发,我强烈鼓励您不要替换整个页面。这几乎是一种让您的应用被拒绝的保证方式。尝试使用“Framework7”等框架通过AJAX加载您的网页。

注意:您只能查看webview中的文件,这些文件位于同一文件夹中,或者是您的初始index.html的子文件。

编辑:您想加载另一个Cordova webview应用程序。我建议仍然让它成为初始“index.html”文件夹的子项。但是,您可以编写插件或自定义平台本身以访问其他文件。但是,这超出了这个问题的范围!