JavaScript Android不起作用

javascript android doesnt work

本文关键字:不起作用 Android JavaScript      更新时间:2023-09-26

我正在研究绑定javascript和android。

网页视图

visor.addJavascriptInterface(new WebAppInterface(this), "Android");
visor.setWebViewClient(new WebViewClient());

我的网页界面:

public class WebAppInterface {
        Context mContext;
        WebAppInterface(Context c) {
            mContext = c;
        }
        @JavascriptInterface
        public void showToast(String toast) {
            Toast.makeText(mContext, toast+" cosas", Toast.LENGTH_SHORT).show();
            visor.loadUrl("www.google.com");
        }
    }

安卓的HTML加载

<input type="button" value="Say hello" onClick="showAndroidToast('Hello Android!')" />
<script type="text/javascript">
    function showAndroidToast(toast) {
        Android.showToast(toast);
    }
</script>

执行适用于 toast,但加载 url 不起作用。我做错了什么?

如果 URL 必须在首次执行后加载,则必须从不同的线程加载,如下所示:

    mWebView.post(new Runnable() {
        @Override
        public void run() {
            mWebView.loadUrl("http://google.com");
        }
    });

所以在你的情况下:

public class WebAppInterface {
        Context mContext;
        WebAppInterface(Context c) {
            mContext = c;
        }
        @JavascriptInterface
        public void showToast(String toast) {
            Toast.makeText(mContext, toast+" cosas", Toast.LENGTH_SHORT).show();
            visor.post(new Runnable() {
                @Override
                public void run() {
                    visor.loadUrl("http://google.com");
                }
            });
        }
    }