简体   繁体   English

Javascript Android不起作用

[英]javascript android doesnt work

I'm working on binding javascript and android. 我正在绑定javascript和android。

The web view 网络视图

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

My Web Interface: 我的网络界面:

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 load for android Android的HTML加载

<input type="button" value="Say hello" onClick="showAndroidToast('Hello Android!')" />

<script type="text/javascript">
    function showAndroidToast(toast) {
        Android.showToast(toast);
    }
</script>

The execution works for toast but load url doesn't work. 该执行适用于Toast,但加载URL不起作用。 What am I doing wrong? 我究竟做错了什么?

If a URL has to be loaded after its first execution, it has to be loaded from a different thread like this: 如果必须在首次执行后加载URL,则必须从另一个线程中加载,如下所示:

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

And so in your case: 因此,在您的情况下:

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");
                }
            });
        }
    }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM