来自资产的Android WebView JavaScript
Android WebView JavaScript from assets
如何从assets文件夹(或任何本地资源)加载远程HTML页面上的JavaScript和图像?
答案:
1.您必须将HTML加载到字符串中:
private String readHtml(String remoteUrl) {
String out = "";
BufferedReader in = null;
try {
URL url = new URL(remoteUrl);
in = new BufferedReader(new InputStreamReader(url.openStream()));
String str;
while ((str = in.readLine()) != null) {
out += str;
}
} catch (MalformedURLException e) {
} catch (IOException e) {
} finally {
if (in != null) {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return out;
}
2.使用基本URL:加载WebView
String html = readHtml("http://mydomain.com/my.html");
mWebView.loadDataWithBaseURL("file:///android_asset/", html, "text/html", "utf-8", "");
在这种特殊的情况下,您应该将要在页面上使用的所有.js文件都放在项目的"assets"文件夹下。例如:
/MyProject/assets/jquery.min.js
3.在您的远程html页面中,您必须加载驻留在应用程序中的.js和.css文件,如:
<script src="file:///android_asset/jquery.min.js" type="text/javascript"></script>
这同样适用于所有其他本地资源,如图像等。它们的路径必须从开始
file:///android_asset/
WebView将首先加载作为字符串提供的原始HTML,然后选择.js、.css和其他本地资源,然后加载远程内容。
如果动态创建HTML,然后使用loadDataWithBaseURL,请确保HTML中的任何本地资源(例如资产文件夹中的javascript)都被引用为文件:///(我花了几个小时解决了这个问题)
相关文章:
- window.onload没有'无法在Android WebView中工作
- Android Webview通过Javascript注入CSS
- 在Android WebView中通过javascript检测点击HTML选项标记
- 用JavaScript替换Android WebView模板上的html文本
- Hammer.js阻止在Android Webview中点击超链接
- 在Android WebView中运行Javascript-onPageFinished循环
- Chrome 50的Android WebView在触摸页面之前会阻止Javascript
- HTML5画布支持和Android Webview
- 带有javascript的HTML没有加载到android webview中
- 带有iframe嵌入的Android WebView;t显示在4.2.2及以下
- 如果没有互联网连接,Android WebView离线消息
- Android Webview没有'有时不会加载HTML
- 如何在Android WebView中嵌入Youtube视频
- 检查登录错误Android WebView Javascript
- Injecting JQuery into Android Webview
- 为什么可以't我在Android WebView onLayout中设置了最大宽度
- Android Webview触摸内容
- 了解 Android webview JavaScript 界面
- 控制在 Android WebView 中执行的 JS
- 在 Android WebView 中过滤 DOM 元素,而无需 jQuery