如何在android中使用WebView组件处理javascript多目标函数?

时间:2018-03-29 02:44:20

标签: javascript android html webview

现在我需要使用webview组件来加载HTML页面并处理组件功能。 HTML页面中的内容是,

你可以看到有一个多对象(webkit.messageHandlers.adClicked),我怎么能用webView.addJavascriptInterface()函数来处理呢? 我知道如何处理单个对象,但我不知道如何处理多个对象?

我使用以下代码,但它不起作用:

enter code here
    webView.addJavascriptInterface(this, "webkit");
    webView.addJavascriptInterface(this, "messageHandlers");
    webView.addJavascriptInterface(this, "adClicked");
    webView.addJavascriptInterface(this, "webkit.messageHandlers.thepaperNewsClicked");

    @android.webkit.JavascriptInterface
    public void postMessage(final String str) {
        getActivity().runOnUiThread(new Runnable() {
            @Override
            public void run() {
                Toast.makeText(getContext(), "param:" + str, Toast.LENGTH_SHORT).show();
            }
    });

1 个答案:

答案 0 :(得分:-1)

来自android API文档:

  

void addJavascriptInterface(Object object,String name)

参数“name”用于让javascript从android调用,所以你只需要处理单个对象;你可以创建一个类并放置 在可以调用javascript的函数中,给javascript调用一个名称。

你可以在这篇文章中看到他们做了什么: https://stackoverflow.com/a/24060790/8355528

参考网站: https://developer.android.com/reference/android/webkit/WebView.html