BridgeWebView在构造方法中初始化设置了setWebViewClient,如果你再次setWebViewClient会覆盖导致registerHandler失效,

解决方案 »

  1.   

    在BridgeWebViewClient   中的onPageFinished方法中可以实现(不确定会不会有别的影响),代码如下:class MyWebViewClient extends BridgeWebViewClient {
            public MyWebViewClient(BridgeWebView webView) {
                super(webView);
            }        @Override
            public void onPageFinished(WebView view, String url) {
                super.onPageFinished(view, url);
                /**
                 * 前端发送消息给客户端  submitFromWeb 是js调用的方法名  安卓返回给js
                 */
                webView.registerHandler("AndroidQRcode", new BridgeHandler() {
                    @Override
                    public void handler(String data, CallBackFunction function) {
                        //显示接收的消息
    //                showToast(data);
                        showToast("js调用二维码");
                        //返回给html的消息
    //                function.onCallBack("返回给Toast的alert");
                    }
                });
            }
        }
      

  2.   

    https://github.com/liulingfeng/CommonWebview 看我这边的解决方式