在js bridge下使用android的套路。
访问量: 2311
注意: 这个文章是对我们私有项目的备忘。目前还没开放使用。
需要配合 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); } });