我正在申请我需要用参数调用Javascript函数的应用程序。为了演示,我在这里写下我的活动代码,我想从中调用js函数。
MainActivity:
WebView wView;
FloatingActionButton fab;
Context context;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
context = this;
wView = (WebView)findViewById(R.id.webView);
wView.loadUrl("file:////android_asset/web/index.html");
wView.getSettings().setJavaScriptEnabled(true);
fab = (FloatingActionButton ) findViewById(R.id.fab);
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
wView.loadUrl("javascript:onClick('say hello world')");
}
});
}
我需要调用的函数是这样的index.js文件:
function onClick (test) {
alert(test);
}
Html代码:
<!doctype html>
<html lang="en">
<head>
<meta name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<link rel="stylesheet" href="https://openlayers.org/en/v4.0.1/css/ol.css" type="text/css">
<link rel="stylesheet" href="css/main.css" type="text/css">
<script src="ol/build/ol.js" type="text/javascript"></script>
<script src="js/index.js" type="text/javascript"></script>
</head>
<body>
<div id="map" class="full-map"></div>
</body>
</html>
当我按下fab按钮时,没有任何反应。知道怎么解决吗?感谢
修改
我也尝试将此行添加到MainActivity中:
wView.setWebChromeClient(new WebChromeClient());