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

有帮助吗?

解决方案

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.

其他提示

the location of js lib in assets folder does not match your src declaration assuming that you placed the js libs in assets/js

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.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top