在我的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/