Back

在js bridge下使用android的套路。

发布时间: 2017-04-13 10:25:00

注意: 这个文章是对我们私有项目的备忘。目前还没开放使用。

需要配合 android native + vue js 使用。 

步骤:

情况一:如果要拦截普通的URL跳转( /#/ 后面的url 发生变化)

情况二:如果使用js bridge, 那么直接在view中调用js方法。

1. 触发某个方法(<a @click='open_new_webview(n.url)'>)

2. 该方法的声明:

       methods:{
        open_new_webview(url){            
              // 语法糖。这里会调用java代码的 open_new_webview handler(类似于一个方法)
              WebViewJavascriptBridge.callHandler('open_new_webview', url,
              function(responseData){ }
            )
        }
       },

3. 对应的Activity中:

        webview.registerHandler("open_new_webview", new BridgeHandler() {
            @Override
            public void handler(String data, CallBackFunction function) {
                Log.i(TAG, "== open_new_webview handler, data from web: " + data);
                Log.i(TAG, "== data.class " + data.getClass());
                // 打开一个新的activity
                Intent intent = new Intent(getActivity(), CommonWebActivity.class);
                intent.putExtra("url", data);
                startActivity(intent);
            }
        });

Back