Android 中BridgeWebView 简单使用,以及爬坑

 

首先附上 开源项目的链接

https://github.com/lzyzsd/JsBridge

测试用的html文件 demo.html 放在 assets 中



 
 
  js调用java
 



 

简单的使用,首先在工程根目录的 build.gradle 文件中加入

allprojects {
    repositories {
        maven { url "https://jitpack.io" }
        jcenter()
    }
}

在要module 的 build.gradle 中加入

compile 'com.github.lzyzsd:jsbridge:1.0.4'

在布局文件使用

使用 java代码 

  private void initWebView(){

       String url = "file:///android_asset/demo.html";
       mWebView.getSettings().setJavaScriptEnabled(true);
       mWebView.loadUrl(url);
    }


     /**
     *  注册方法提供给html js调用
     */
    private void webViewRegisterHandler(){
       /// 隐藏分享按钮
        mWebView.registerHandler("submitFromWeb", new BridgeHandler() {
            @Override
            public void handler(String data, CallBackFunction function) {
                Log.e("TAG","submitFromWeb---------");
               
                function.onCallBack(data);
            }
        });

    }


    /**
     *  调用html js中注册的的pageShareMsg 方法
     */
    private void callHandler(){
        /// 通过js获取html 要分享的数据
        mWebView.callHandler("pageShareMsg","", new CallBackFunction() {
            @Override
            public void onCallBack(String data) {
                Log.e("TAG","pageShareMsg---------");
            }

        });


    }

碰到的坑  是因为项目中的webview 设置了setWebViewClient 导致一直无法正常使用,后来看 BridgeWebView 的代码发现BridgeWebView 中有设置setWebViewClient  设置的是  BridgeWebViewClient ;

mWebView.setWebViewClient(new MyWebViewClient(mWebView));

private class MyWebViewClient extends BridgeWebViewClient {
        public MyWebViewClient(BridgeWebView webView) {
            super(webView);
        }

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            LogUtil.i("---url: " + url);
//           
            return super.shouldOverrideUrlLoading(view,url);
        }

        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            super.onPageStarted(view,url,favicon);

        }

        @Override
        public void onPageFinished(WebView view, String url) {
 
            super.onPageFinished(view,url);
        }
    }

 

 

 

 

 

你可能感兴趣的:(Android 中BridgeWebView 简单使用,以及爬坑)