【Android开发】JsBridge的使用

配置

repositories {
    // ...
    maven { url "https://jitpack.io" }
}

dependencies {
    compile 'com.github.lzyzsd:jsbridge:1.0.4'
}

Activity代码

public class MainActivity extends BaseActivity {

    BridgeWebView bridgeWebView;
    Button button;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_js_bridge);

        getSupportActionBar().setTitle("JsBridge_test");

        button = (Button) findViewById(R.id.button3);

        bridgeWebView = (BridgeWebView) findViewById(R.id.JsBridgeWebView);

        bridgeWebView.setDefaultHandler(new DefaultHandler());

        bridgeWebView.setWebChromeClient(new WebChromeClient());

        bridgeWebView.setWebViewClient( new MyWebViewClient(bridgeWebView));

        bridgeWebView.loadUrl("file:///android_asset/test.html");


      
        bridgeWebView.registerHandler("submitFromWeb", new BridgeHandler() {
            @Override
            public void handler(String data, CallBackFunction function) {
                showToast(data);
                function.onCallBack( "返回给Toast的alert");
            }
        });

        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                bridgeWebView.callHandler("functionInJs", "调用js的方法", new CallBackFunction() {

                    @Override
                    public void onCallBack(String data) {

                        showToast("==="  + data);
                    }
                });
            }
        });

    }

    public void showToast (String msg){
        Toast.makeText(this,msg, Toast.LENGTH_SHORT).show();
    }

}





    
    

    

html


        
                
                js调用java
        
        
        

结果

参考文章:
Android JSBridge的原理与实现
Android JsBridge实战 打造专属你的Hybrid APP

你可能感兴趣的:(【Android开发】JsBridge的使用)