Android获取以及修改WebView的UserAgent

    **User Agent**中文名为用户代理,是Http协议中的一部分,属于头域的组成部分,User Agent也简称UA。
    **是什么**:它是一个特殊字符串头,是一种向访问网站提供你所使用的浏览器类型及版本、操作系统及版本、浏览器内核、等信息的标识。
    **什么用**:通过这个标识,用户所访问的网站可以显示不同的排版从而为用户提供更好的体验或者进行信息统计;例如用手机访问谷歌和电脑访问是不一样的,这些是谷歌根据访问者的UA来判断的。

对于Android开发者,如何获取UserAgent:
1.首先在你的Activity对应的xml布局文件中加入WebView控件:

  <WebView
           android:id="@+id/wv_online_buy_web"
           android:layout_width="match_parent"
           android:layout_height="match_parent" />

2.在Activity中加如下代码:

public class WebActivity extends BaseActivity {
   private WebView webView;//网页加载
   private String url;

   @Override
   public int intiLayout() {
       return R.layout.activity_online_buy;
   }

   @Override
   public void initView() {//设置状态栏
       webView = findViewById(R.id.wv_online_buy_web);
       url = getIntent().getStringExtra(IntentConfig.PAY_URL);
   }

   @RequiresApi(api = Build.VERSION_CODES.KITKAT)
   @Override
   public void initData() {
webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);//设置js可以直接打开窗口,如window.open(),默认为false
       webView.getSettings().setBuiltInZoomControls(true);
       webView.getSettings().setJavaScriptEnabled(true);
       // 获取到UserAgentString  
       String userAgent = webView.getSettings().getUserAgentString();  
       // 打印结果  
       Log.i("TAG", "User Agent:" + userAgent);  
       webView.getSettings().setUserAgentString( userAgent+"app/test");
       //Android webView打不开一些网页的解决办法---开始     webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);//设置js可以直接打开窗口,如window.open(),默认为false
       webView.getSettings().setSupportZoom(true);//是否可以缩放,默认true
       webView.getSettings().setBuiltInZoomControls(true);//是否显示缩放按钮,默认false
       webView.getSettings().setUseWideViewPort(true);//设置此属性,可任意比例缩放。大视图模式
       webView.getSettings().setLoadWithOverviewMode(true);//和setUseWideViewPort(true)一起解决网页自适应问题
       webView.getSettings().setAppCacheEnabled(true);//是否使用缓存
       webView.getSettings().setDomStorageEnabled(true);//DOM                   
   }

3.关键代码:

  // 获取到UserAgentString  
       String userAgent = webView.getSettings().getUserAgentString();  
       // 打印结果  
       Log.e("TAG", "User Agent:" + userAgent);  
       webView.getSettings().setUserAgentString( userAgent+"app/test");//拼接

最后,如果你想让WebView能够加载来自网络的页面,别忘了在AndroidManifest.xml文件中加入INTERNET权限。

<uses-permission android:name="android.permission.INTERNET" />    

输出结果:

Mozilla/5.0 (Linux; Android 9; HRY-AL00a Build/HONORHRY-AL00a; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/68.0.3440.91 Mobile Safari/537.36

发布了22 篇原创文章 · 获赞 31 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_36158551/article/details/85245152