问题
I'am newbie in Android programming and I want to us jqMath to display some math formulas in WebView.
Here is my code:
WebView webView = (WebView)findViewById(R.id.webView1);
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
String js = "<html><head>"
+ "<link rel='stylesheet' href='jqmath-0.4.0.css'>"
+ "<script src='jquery-1.4.3.min.js'></script>"
+ "<script src='jqmath-etc-0.4.0.min.js'></script>"
+ "</head><body>"
+ "<script>var s = '$ax^2+bx+c=0$ with $a≠0$';M.parseMath(s);document.write(s);</script></body>";
webView.loadData(js, "text/html", "UTF-8");
What is the problem of this code?,
UPDATE well my problem have solved, but I also changed loadData function to loadDataWithBaseURL I mention just for reference if anyone else have same problem
回答1:
You need to specify the path correctly for the css,js files as following:
WebView webView = (WebView)findViewById(R.id.webView1);
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
String path="file:///android_asset/";
String js = "<html><head>"
+ "<link rel='stylesheet' href='"+path+"jqmath-0.4.0.css'>"
+ "<script src='"+path+"jquery-1.4.3.min.js'></script>"
+ "<script src='"+path+"jqmath-etc-0.4.0.min.js'></script>"
+ "</head><body>"
+ "<script>var s = '$ax^2+bx+c=0$ with $a≠0$';M.parseMath(s);document.write(s);</script></body>";
webView.loadData(js, "text/html", "UTF-8");
note that the files should be in assets folder.
回答2:
the location of js lib in assets folder does not match your src declaration assuming that you placed the js libs in assets/js
回答3:
After specifying the path like Khalid said, the following worked for me
webView.loadDataWithBaseURL( "file:///android_asset/" ,js, "text/html", "UTF-8", null);
instead of webView.loadData
method.
来源:https://stackoverflow.com/questions/22127355/using-jqmath-in-android-application