我正在尝试编写一个类,该类将返回一个带有 Javascript 的 HTML 字符串,以便在 WebView 中使用。返回 HTML 和 Javascript 效果很好,但我在使用返回的 HTML 加载库时遇到问题。例如,这很有效:
public static String helloWorld() {
String html;
html = "<!DOCTYPE html>" +
"<html>" +
"<head>" +
"<title>" +
"</title>" +
"</head>" +
"<body>" +
"<script>" +
"document.write(\"Hello, World\");" +
"</script>" +
"</body>" +
"</html>";
return html;
}
但是,这不会:
public static String helloWorld() {
String html;
html = "<!DOCTYPE html>" +
"<html>" +
"<head>" +
"<title>" +
"</title>" +
"<script src=\"../assets/src/external_script.js\"></script>" +
"</head>" +
"<body>" +
"<script>" +
"external_script_function();" +
"</script>" +
"</body>" +
"</html>";
return html;
}
我猜 external_script.js 导入的文件路径不正确?使用 WebView.LoadUrl(myLocalHtmlFile);
在使用其他 JS 文件时有效。我将如何着手使这项工作正常进行?或者,是否有更好的方法来实现类似的结果?
最佳答案
您需要将 Assets 文件夹作为基本 URL 提供给 WebView。像这样:
MyWebView.loadDataWithBaseURL("file:///android_asset/", helloWorld());
然后是 <script>
标签会像这样:
<script src="src/external_script.js"></script>
假设库位于 assets/src
下.是的,您需要像 triad 所建议的那样启用 JavaScript。
关于java - 使用 WebView.Load() 读取带有 JS 库引用的动态 HTML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9814426/