Javascript MathJax渲染Android

Javascript MathJax渲染Android,javascript,android,webview,mathjax,Javascript,Android,Webview,Mathjax,现在我为Android编写了程序。此应用程序必须使用MathJax库将公式呈现到WebView。但是我有问题。。。有时它不起作用(有时)。。。 现在资料来源: // This function calls everytime before output public static void clearWebView() { w.loadDataWithBaseURL("http://bar", "<!DOCTYPE html><html><head>

现在我为Android编写了程序。此应用程序必须使用MathJax库将公式呈现到WebView。但是我有问题。。。有时它不起作用(有时)。。。 现在资料来源:

// This function calls everytime before output

public static void clearWebView()
{
    w.loadDataWithBaseURL("http://bar", "<!DOCTYPE html><html><head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0,maximum-scale=1.0, user-scalable=no\"> <script type='text/x-mathjax-config'>"
            +"MathJax.Hub.Config({ " 
                +"showMathMenu: false, "
                +"jax: ['input/TeX','output/HTML-CSS'], "
                +"extensions: ['tex2jax.js'], " 
                +"TeX: { extensions: ['AMSmath.js','AMSsymbols.js',"
                  +"'noErrors.js','noUndefined.js', 'MathZoom.js'" +
                "] } "
              +"});</script>"
            +"<script type='text/javascript' "
              +"src=\"file:///android_asset/MathJax/MathJax.js\""
              +"></script></head><body><span id='solve'></span></body></html>" ,"text/html","utf-8", "");
    }

这是4.4的完美解决方案:

  wq.getSettings().setJavaScriptEnabled(true);
            wq.getSettings().setBuiltInZoomControls(true);
            wq.getSettings().setLoadWithOverviewMode(true);
            wq.loadDataWithBaseURL("http://bar/", "<script type='text/x-mathjax-config'>"
                    +"MathJax.Hub.Config({ "
                    +"showMathMenu: false, "
                    +"jax: ['input/MathML','output/HTML-CSS'], " // output/SVG
                    +"extensions: ['mml2jax.js'], "
                    +"TeX: { extensions: ['noErrors.js','noUndefined.js'] }, "
                    //+"'SVG' : { blacker: 30, "
                    // +"styles: { path: { 'shape-rendering': 'crispEdges' } } } "
                    +"});</script>"
                    +"<script type='text/javascript' "
                    +"src='file:///android_asset/MathJax/MathJax.js'"
                    +"></script><span id='text'> </span> <span id='math'></span>", "text/html", "utf-8", "");





    if (android.os.Build.VERSION.SDK_INT < 19)
            {
                wq.loadUrl("javascript:document.getElementById('math').innerHTML='"
                    + "<math xmlns=\"http://www.w3.org/1998/Math/MathML\">"
                    + "<mstyle displaystyle=\"true\">"
                    + doubleEscapeTeX(questn+ans)
                    + "</mstyle></math>';");
                wq.loadUrl("javascript:MathJax.Hub.Queue(['Typeset',MathJax.Hub]);");
            }
            else
            {
                wq.evaluateJavascript("javascript:document.getElementById('math').innerHTML='<font color=\"#000000\">`"+doubleEscapeTeX(questn+ans)+"`</font>';",null);
                wq.loadUrl("javascript:MathJax.Hub.Queue(['Typeset',MathJax.Hub]);");
            }
wq.getSettings().setJavaScriptEnabled(true);
wq.getSettings().SetBuilTinZoomControl(true);
wq.getSettings().setLoadWithOverview模式(true);
wq.loadDataWithBaseURL(“http://bar/", ""
+“MathJax.Hub.Config({”
+showMathMenu:错误
+“jax:['input/MathML','output/HTML-CSS'],”//output/SVG
+“扩展:['mml2jax.js'],”
+TeX:{extensions:['noErrors.js','noUndefined.js']}
//+“'SVG':{blacker:30,”
//+“样式:{path:{‘形状渲染’:‘CrispEdge’}}”
+"});"
+“,”文本/html“,”utf-8“,”);
if(android.os.Build.VERSION.SDK_INT<19)
{
wq.loadUrl(“javascript:document.getElementById('math')。innerHTML=”
+ ""
+ ""
+双逃逸仪(任务N+ans)
+ "';");
loadUrl(“javascript:MathJax.Hub.Queue(['Typeset',MathJax.Hub]);”;
}
其他的
{
wq.evaluateJavascript(“javascript:document.getElementById('math').innerHTML='``+doubleEscapeTeX(questn+ans)+'`;”,null);
loadUrl(“javascript:MathJax.Hub.Queue(['Typeset',MathJax.Hub]);”;
}

我在我的应用程序中使用了相同的代码,并且在Android 4.4上遇到了问题。我在安卓4.3及更低版本上工作。以下是我在4.4上面临的问题,
  wq.getSettings().setJavaScriptEnabled(true);
            wq.getSettings().setBuiltInZoomControls(true);
            wq.getSettings().setLoadWithOverviewMode(true);
            wq.loadDataWithBaseURL("http://bar/", "<script type='text/x-mathjax-config'>"
                    +"MathJax.Hub.Config({ "
                    +"showMathMenu: false, "
                    +"jax: ['input/MathML','output/HTML-CSS'], " // output/SVG
                    +"extensions: ['mml2jax.js'], "
                    +"TeX: { extensions: ['noErrors.js','noUndefined.js'] }, "
                    //+"'SVG' : { blacker: 30, "
                    // +"styles: { path: { 'shape-rendering': 'crispEdges' } } } "
                    +"});</script>"
                    +"<script type='text/javascript' "
                    +"src='file:///android_asset/MathJax/MathJax.js'"
                    +"></script><span id='text'> </span> <span id='math'></span>", "text/html", "utf-8", "");





    if (android.os.Build.VERSION.SDK_INT < 19)
            {
                wq.loadUrl("javascript:document.getElementById('math').innerHTML='"
                    + "<math xmlns=\"http://www.w3.org/1998/Math/MathML\">"
                    + "<mstyle displaystyle=\"true\">"
                    + doubleEscapeTeX(questn+ans)
                    + "</mstyle></math>';");
                wq.loadUrl("javascript:MathJax.Hub.Queue(['Typeset',MathJax.Hub]);");
            }
            else
            {
                wq.evaluateJavascript("javascript:document.getElementById('math').innerHTML='<font color=\"#000000\">`"+doubleEscapeTeX(questn+ans)+"`</font>';",null);
                wq.loadUrl("javascript:MathJax.Hub.Queue(['Typeset',MathJax.Hub]);");
            }