android读取js的meta
webView.addJavascriptInterface(new JsInter(WebViewActivity.this), "whb");第1个参数:js调用Android(java)本地方法的对象;第2个参数:对象的名字,js主要通过这个名字来拿到第1个参数的对象,从而调用android(java)的本地方法。android读取js的meta1. 确定meta中需要读取的内容例如:包含2
webView.addJavascriptInterface(new JsInter(WebViewActivity.this), "whb");
第1个参数:js调用Android(java)本地方法的对象;
第2个参数:对象的名字,js主要通过这个名字来拿到第1个参数的对象,从而调用android(java)的本地方法。
android读取js的meta
1. 确定meta中需要读取的内容
例如:包含2个mete
<meta name=add content=1><meta name=share content=0>
2. 设置mWebView.setWebViewClient(new BaseWebViewClient());
3. onPageFinished方法里,读取meta信息
private class BaseWebViewClient extends WebViewClient {
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
String rightButton = "javascript:window." + JS_ALIAS + ".setRightFunction(" + "document.querySelector('meta[name=\"share\"]').getAttribute('content')" + ",document.querySelector('meta[name=\"add\"]').getAttribute('content')" + ");";
view.loadUrl(rightButton);
}
}
4. JS_ALIAS是别名,自己确定名字,js要知晓
5. setRightFunction该方法名自己确定,只要在webView.addJavascriptInterface(new JsInterface(WebViewActivity.this),JS_ALIAS);中JsInterface对象下显示即可
6. JsInterface对象下代码如下:
@JavascriptInterface
public void setRightFunction(String share, String add) {
//根据自己逻辑处理
if ("1".equals(share)) {
refreshUI.sendEmptyMessage(SHARE);
} else if ("1".equals(add)) {
refreshUI.sendEmptyMessage(ADD);
}
}
7. 第6步方法的参数个数要和第3步中onPageFinished里请求个数一致(即n个meta就是n个参数)
更多推荐
所有评论(0)