我想创建一个计算器,能够计算像3+(2-1)*2或(28.4/2-1.5)+(4-2)这样的字符串。我在网上搜索了一下,发现有可能使用一个启用了JavaScript的WebView来计算()字符串。
如何在WebView中使用JavaScript?
例如,我如何将input.getText().toString()传递给JavaScript并取回一个值?
如何在我的Java代码中访问JavaScript的evaluate()?
我找到了一个教程here。我必须将HTML文件加载到我的WebView中,不是吗?
发布于 2012-10-17 22:38:10
你走对了。为了在webview中使用javascript,在onPageFinish函数将url加载到webview之后(您可以在onPageFinish函数中捕捉到页面加载),您可以像这样调用js:
但首先,您必须使用以下代码块授予webview权限:
settings.setJavaScriptEnabled(true);
settings.setJavaScriptCanOpenWindowsAutomatically(true);
webview.loadUrl("javascript:setPageHeight("+contentHeight+");"); // you can pass param with call js function at loaded page.
webview.loadUrl("javascript:alert('test');"); // or you can call like this对于使用js从webview获取结果参数,您必须有一个子类,如下所示:
class JavaScriptInterface {
public void showToast(String msg) {
Toast.makeText(mContext, "Received Msg :" + msg,Toast.LENGTH_SHORT).show();
}
}然后,在定义webview行将其提供给您的webview
webview.addJavascriptInterface(new JavaScriptInterface(), "MyAndroid");最后,在js中调用html中的java函数,如下所示:
<html>
<head>
<script type="text/javascript">
function sayHello(msg){
//calls Android's JavaScriptInterface Function
MyAndroid.showToast(msg);
}
</script>
</head>
<body >
<div onclick="sayHello('hello')"> Click Me !! </div>
</body>
</html>https://stackoverflow.com/questions/12817499
复制相似问题