我想创建一个能够评估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中,不是吗?
答案 0 :(得分:-1)
你是对的。为了在webview中使用javascript,在你加载url到webview后,你可以在onPageFinish函数中捕获到在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>