Использование jqMath в приложении Android

Я новичок в программировании на Android и хочу, чтобы jqMath отображал некоторые математические формулы в WebView.

Вот мой код:

    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");

В чем проблема этого кода?,

ОБНОВЛЕНИЕ, ну, моя проблема решена, но я также изменил функцию loadData на loadDataWithBaseURL. Я упоминаю только для справки, если у кого-то еще есть такая же проблема

3 ответа

Решение

Вам необходимо правильно указать путь для файлов css,js следующим образом:

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");

обратите внимание, что файлы должны быть в папке активов.

Расположение js lib в папке assets не соответствует вашей декларации src, если вы поместили js libs в assets/js

После указания пути, как сказал Khalid Taha, у меня сработало следующее

webView.loadDataWithBaseURL( "file:///android_asset/" ,js,  "text/html",  "UTF-8", null);

вместо webView.loadData метод.

Другие вопросы по тегам