2015-04-02 18 views
2

我試過了這段代碼,並停留了很多天。
其實我想要的是整合mathjax庫爲mathametics公式,並獲得輸出形式。得到值的形式Android調用JavaScript函數,並將其返回給js

<html> 
<head> 
<style> 
body{ 
background-color: #FA5858; 
color:#fff; 
} 
input{ 
background-color: #F7D358; 
width: 300px; 
padding:10px; 
color: #000; 
} 
div#content{ 
padding:20px; 
background-color: #F7D358; 
color: #000; 
} 
</style> 
<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"> 

    function showAndroidToast(toastmsg) { 
     var x= Android.showToast(toastmsg); 
     return x; 
    } 

function testcall(toastmsg){ 
alert(showAndroidToast(toastmsg)); 
} 
</script> 
</head> 
<body> 
<center> 
<h3>Binding JavaScript code to Android code</h3> 
<div id="content"> 

</div> 
<div> 
Here are few examples: 
When \(a \ne 0\), there are two solutions to \(ax^2 + bx + c = 0\) and they are 
$$x = {-b \pm \sqrt{b^2-4ac} \over 2a}.$$ 
</div> 
<div> 
<input type="button" value="Make Toast" onClick="testcall('Toast made by Javascript New:)')" /><br/> 

</div> 
</center> 
</body> 
</html> 

這在我的Android代碼

public class WebAppInterface { 
    Context mContext; 

    /** Instantiate the interface and set the context */ 
    WebAppInterface(Context c) { 
     mContext = c; 
    } 

    /** 
    * Show Toast Message 
    * @param toast 
    */ 
    public String showToast(String toast) { 
     Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show(); 
     String test="\\hspace1ex \\color{blue} {Simplify:} \\hspace1ex 2x(3x+2xy)"; 
     return test; 
    } 
    } 

但我的Android代碼沒有任何vaule返回javascript函數。
任何幫助表示讚賞。

一樣,

這是我的Android功能

public String showToast() { 

    String test="\\hspace1ex \\color{blue} {Simplify:} \\hspace1ex 2x(3x+2xy)"; 
    return test; 
} 

and in javascript i want the value that is return by this showToast() function 

感謝

+0

你如何初始化的網頁視圖?請張貼更多一點的代碼:) – PaMaDo 2015-04-02 10:06:42

回答

1

這是我在一個應用程序做的:

設置web視圖:

final WebView webView = new WebView(context); 
    webView.getSettings().setJavaScriptEnabled(true); 
    webView.addJavascriptInterface(new WebViewInterface(), "Android"); 
    webView.loadUrl("file:///android_asset/web/page.html"); 

這個WebViewInterface實現:

import android.webkit.JavascriptInterface; 

public class WebViewInterface { 

    @JavascriptInterface 
    public void log(String text) { 
     Log.d("TAG", text); 
    } 
} 

的page.html中位於資產/ Web文件夾,看起來像這樣:

<!DOCTYPE html> 

<html> 
<head> 
    <script language="javascript" src="script.js"> </script> 
</head> 
<body> 
</body> 
</html> 

的的script.js文件位於資產/ Web文件夾太:

function logText(text) { 
    Android.log(text); 
} 

function toBeCalledFromAndroid(text) { 
    // Do something in javascript 
} 

javascript的logText函數調用Android中的Navive日誌方法。

撥叫原生Android代碼,你需要做以下Javascript函數:

String loadingUrl = "javascript:toBeCalledFromAndroid('" + text + "')"; 
webView.loadUrl(loadingUrl); 
+0

感謝您的回覆..但我想要的是通過字符串表單WebAppInterface函數並獲得它的值在javascript – ADT 2015-04-02 09:17:25

+0

我更新了我的答案 – PaMaDo 2015-04-02 09:29:13

+0

@ PaMADo你誤解我的問題..你可以告訴我怎麼會得到字符串表單接口到JavaScript?看看我已經更新了我的問題.. – ADT 2015-04-02 09:34:26

相關問題