相关疑难解决方法(0)

在Android中显示漂亮的数学公式

令人遗憾的是,在Android平台上,科学和数学从未得到足够的重视.也许这是一个简单的问题,但我在javascript中是一个完全的家伙,所以我很难理解如何解决这个问题.

我想做的很简单:我只需要使用渲染数学方程.它可以是MathJax或JqMath或任何小而快的东西.如果我必须在webview中执行此操作,如何在同一webview中的段落和格式化方程式中显示纯文本?

(任何人都提出其他显然有效的方法,我会认为这也是解决方案)

我做了什么:

我开始使用MathJax将公式放入webview(如果有任何成功的jqMath用例,我不知道吗?有人愿意分享他们的经验吗?)我可以重现所有功能,就像独立的MathJax应用程序一样.在该应用程序中,用户将字符串键入EditText字段,一旦用户按下按钮进行确认,MathJax将在Latex中呈现公式.

我不需要用户确认.我认为这应该更容易,因为没有用户交互,但不知何故方程式永远不会显示.我知道我必须遗漏一些东西,因为独立MathJax中的代码用于用户输入.我应该修改哪部分代码直接从字符串中呈现方程,比如说\ sqrt {b ^ 2-4ac}?这是webview的初始标题:

WebView w = (WebView) findViewById(R.id.webview);
w.getSettings().setJavaScriptEnabled(true);
w.getSettings().setBuiltInZoomControls(true);
w.loadDataWithBaseURL("http://bar", "<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'] } "
                        +"});</script>"
                        +"<script type='text/javascript' "
                        +"src='file:///android_asset/MathJax/MathJax.js'"
                        +"></script><span id='math'></span>","text/html","utf-8","");
Run Code Online (Sandbox Code Playgroud)

以下是用户在输入edittext后按下按钮时加载原始webview的方式:

WebView w = (WebView) findViewById(R.id.webview);
EditText e = (EditText) findViewById(R.id.edit);
w.loadUrl("javascript:document.getElementById('math').innerHTML='\\\\["
                  +doubleEscapeTeX(e.getText().toString())
                  +"\\\\]';");
w.loadUrl("javascript:MathJax.Hub.Queue(['Typeset',MathJax.Hub]);");

private static String doubleEscapeTeX(String s) {
    String t="";
    for (int i=0; i < s.length(); …
Run Code Online (Sandbox Code Playgroud)

javascript math android mathjax jqmath

28
推荐指数
2
解决办法
1万
查看次数

Android webview SKIPS javascript甚至包含setJavascriptEnabled(true)和WebChromeClient

(使用三星Galaxy Tab和Android 3.0,这适用于每个3.0+平板电脑,就像在浏览器中一样,而不是webview)

我有一个CSS和jQuery的页面在浏览器,Android浏览器和iOS设备中加载很好,但android webview拒绝一致地加载它.

我已经缩小了问题,只是在加载javascript时跳过javascript(通过复制一些webview javascript演示应用程序的问题).为什么是这样?

这是完整的测试HTML代码 http://pastebin.com/GmE2vEYx

以下是我称之为:

  myWebview.loadUrl("file:///android_asset/myPage.html");
  myWebview.getSettings().setJavaScriptEnabled(true);
  myWebview.setWebChromeClient(new WebChromeClient());
Run Code Online (Sandbox Code Playgroud)

这三个调用的顺序不会影响结果.

  myWebview.getSettings().setJavaScriptEnabled(true);
  myWebview.setWebChromeClient(new WebChromeClient());
  myWebview.loadUrl("file:///android_asset/myPage.html");
Run Code Online (Sandbox Code Playgroud)

我注意到的一件事是,如果你给它时间(通过在调试器中暂停应用程序断点),那么javascript将更加一致地加载.这导致我尝试使应用程序加载速度较慢的一些牵强附会的实验,但这实际上不是所需的用户体验.我真的希望Android webview真的不是移动开发的IE6.

其他事实:

如果删除<script>包含所有Jquery 的标记,则页面会快速加载所有CSS格式.一旦添加了Jquery,就什么都没有加载.

我还发现了几个遇到完全相同问题的其他问题,许多问题没有得到答复,或者对OP正在寻求的内容没有确切的答案:(

看: Android:即使使用setJavaScriptEnabled(true)也无法让javascript在WebView上运行

页面重新加载(Webview.loadUrl)导致Javascript未被(完全)处理

http://groups.google.com/group/android-developers/browse_thread/thread/9962064ef217a5a7#

JavaScript有时在android的webview中不起作用

Android WebView没有加载JavaScript文件,但Android浏览器加载它很好

Android的Webview无法处理javascript?

建议?让我们来到这个底部!android文档说webview有局限性,但我不知道那个限制在哪里,因为人们一直在制作HTML CSS JS应用程序!

javascript android function code-injection webview

8
推荐指数
1
解决办法
9165
查看次数