我想加载从Android Asset文件夹中获取JS引用的HTML文件。当我在浏览器中打开HTML文件时,它会正确加载所有JS引用。但是当我从Android JS文件加载时没有引用。
示例代码
WebView web_view = FindViewById<WebView>(Resource.Id.webView); `web_view.Settings.JavaScriptEnabled = true;`
string sampleHtmlData = "<html><head>" +
"<script src=\"epub.min.js\"></script>" +
"<script src=\"jquery-1.10.2.min.js\" type=\"text/javascript\"></script>" +
"<script>" +
"var book = ePub(\"Azure_Cosmos_DB_and_DocumentDB_Succinctly/\");" +
"$(document).ready(function(){ book.renderTo(\"area\"); });" +
"</script>" +
"</head><body> <div id=\"prev\" onclick=\"book.prevPage()\" style=\"font - size: 64px; cursor: pointer;\" class=\"arrow\">‹</div>" +
"<div id =\"area\" style =\"height:500px;\" ></ div >" +
"<div id = \"next\" onclick = \"book.nextPage()\" style = \"font-size: 64px;cursor:pointer;\" class=\"arrow\">›</div></body></html>";
web_view.LoadDataWithBaseURL("file:///android_asset/Sample/", sampleHtmlData, "text/html", "UTF-8", null);
我也尝试使用LoadUrl加载。
web_view.LoadUrl("file:///android_asset/Sample/index.html")
文件路径: 资产/样品
有人建议我加载带有相应JS文件的本地Html文件吗? Android将支持EPUB js吗?
答案 0 :(得分:0)
你应该试试这位朋友。
webView.loadData("Your HTML source", "text/html", "UTF-8");
webView.loadData()将网页源代码直接加载到WebView
中请将您的JAVASCRIPT嵌入HTML
答案 1 :(得分:0)
你好试试这个例子,如果它有帮助
public class MainActivity extends Activity {
WebView view;
JSInterface api;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
view = (WebView) findViewById(R.id.webView);
api = new JSInterface();
WebSettings asd = view.getSettings();
asd.setJavaScriptEnabled(true);
view.addJavascriptInterface(api, "api");
String url = "file:///android_asset/index.html";
view.loadUrl(url);
view.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
public void onPageFinished(WebView view, String url) {
view.loadUrl("javascript:api.getString(document.getElementsByClassName('txtTitle')[0].innerHTML)");
}
});
}
private class JSInterface {
@JavascriptInterface
public void getString(String str) {
Log.d("STRING", str);
}
}
}
答案 2 :(得分:-1)
通过启用以下属性已解决此问题。
if (Build.VERSION.SdkInt >= Build.VERSION_CODES.JellyBean)
{
webView.Settings.AllowUniversalAccessFromFileURLs = true;
webView.Settings.AllowFileAccessFromFileURLs = true;
}
注意:将所需的JS文件直接保存到Assets文件夹中,而不是保留内部文件夹以保存JS文件
-Thanks