Android 原生app中嵌入了 H5网页,这些H5网页直接引用的为手机浏览器开发的网页,但是app中的页面和逻辑操作和收留浏览器中的会有一定的差别,那么久需要进行判断是否是在app中加载的。使用用户代理来区分是最简单也是最准确的。
获取WebView的默认用户代理
WebView webView = (WebView) findViewById(R.id.webview);
WebSettings settings = webView.getSettings();
String ua = settings.getUserAgentString();
ua = ua + "[B2B_APP/1.0]";
设置WebView的用户代理
WebView webView = (WebView) findViewById(R.id.webview);
WebSettings settings = webView.getSettings();
settings.setUserAgentString(ua);
JS中判断是否是App
isapp : function(){
var ua = navigator.userAgent;
return ua.indexOf("B2B_APP") >=0 ? true : false;
},
这样就实现了根据H5页面加载的地方不同渲染不同的页面和逻辑操作。