Question

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

Was it helpful?

Solution

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.

OTHER TIPS

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.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top