从Android Activity类调用Javascript函数

时间:2017-03-06 19:16:45

标签: javascript android webview

我正在申请我需要用参数调用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')");
        }
    });
}

项目中的代码结构: enter image description here

我需要调用的函数是这样的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());

但结果是: enter image description here

0 个答案:

没有答案