【发布时间】:2015-01-22 21:24:59
【问题描述】:
在 Android Studio 1.0.1,API 21 上开发。以下是文件夹结构 -
它本质上是一个基于 AngularJS 的应用程序,我想将它封装在一个 webview 容器中并在 Android 上运行。
我的 Android 端代码是 -
WebView myWebView = (WebView) findViewById(R.id.webview);
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setDomStorageEnabled(true);
myWebView.setWebChromeClient(new WebChromeClient());
String filePath = "file:///android_asset/www/index.html";
myWebView.loadUrl(filePath);
html中的引用都是相对的-
<script src="lib/jquery.min.js"></script>
<script src="lib/angular.min.js"></script>
<script src="lib/angular-route.min.js"></script>
<script src="lib/bootstrap.min.js"></script>
但有趣的是,我搜索了大多数地方,但我不确定我哪里出错了。我的参考根本不起作用!所以我无法访问我的 lib 文件、我的脚本、我的 css。 另外,如果我在 webview 中运行一个外部 angular 网页,使用相同的 Java 代码,它可以完美运行!
感谢任何帮助。
注意:请不要建议使用 Cordova/PhoneGap。原生化是项目要求(坦率地说,我不明白为什么,但我只是一个没有发言权的开发人员)。
附带说明:我在 iOS 网络视图中遇到了同样的问题。引用无效!
更新
尝试了以下方法:
试过loadDataWithBaseURL(),不行。
尝试了所有可能的路径方案。没有任何效果。
从文件夹中删除所有脚本并将它们放在根级别,并将链接修改为没有路径,只是文件名。还是不行。这也太奇怪了。
【问题讨论】: