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

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,但在目录中显示如下错误


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


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

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

最佳答案

您不需要使用“ cordova.file.datadirectory”。仅当您使用文件插件访问数据文件时,例如在游戏或关卡数据中保存高得分。您不使用该插件将页面加载/卸载到当前Webview中。

您希望所有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加载页面。

注意:您只能在web视图中查看与初始index.html相同或位于其子文件夹中的文件。

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

关于javascript - Cordova window.location.href行为错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31383284/

10-15 10:14