日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

通过 UserAgent 判断是否在我们自己的安卓APP中

發布時間:2025/4/5 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 通过 UserAgent 判断是否在我们自己的安卓APP中 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

之前 寫過一篇 根據 UserAgent 判斷網頁是在瀏覽器、或在微信、或在APP中 (http://www.miaoqiyuan.cn/p/useragent-in-where),那篇文章能通過 UserAgent 判斷出 是否在微信、瀏覽器或者其他APP中,如果需要判斷是否在我們自己開發的APP中,就無能為力了。

WebView 提供了 setUserAgentString,可以任意修改 UserAgent。我們只需要在 UserAgent 中增加 自定義的 字符串,就可以在網頁中通過JS判斷是否在我們自己的APP內。

MainActivity.java 的代碼如下:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 package cn.miaoqiyuan.MyApp; import android.net.http.SslError; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.webkit.SslErrorHandler; import android.webkit.WebSettings; import android.webkit.WebView; import android.webkit.WebViewClient; public class MainActivity extends AppCompatActivity { ????@Override ????protected void onCreate(Bundle savedInstanceState) { ????????super.onCreate(savedInstanceState); ????????setContentView(R.layout.activity_main); ????????WebView webView = (WebView) findViewById(R.id.webView); ????????//修改User-Agent,比如 MyApp,版本號2.0 ????????WebSettings webConf = webView.getSettings(); ????????webConf.setUserAgentString(webConf.getUserAgentString() + " MyApp/2.0<Android>"); ????????//不使用瀏覽器打開 ????????webView.setWebViewClient(new WebViewClient(){ ????????????@Override ????????????public boolean shouldOverrideUrlLoading(WebView view, String url) { ????????????????//返回值是true的時候控制去WebView打開,為false調用系統瀏覽器或第三方瀏覽器 ????????????????view.loadUrl(url); ????????????????return true; ????????????} ????????????@Override ????????????public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { ????????????????//出現錯誤頁,顯示報錯 ????????????????String data = "<br /><br /><br /><br /><br /><center>無法連接服務器</center>"; ????????????????view.loadUrl("javascript:document.body.innerHTML=\"" + data + "\""); ????????????} ????????????@Override ????????????public void onPageFinished(WebView view, String url) { ????????????????//頁面加載完畢 ????????????????super.onPageFinished(view, url); ????????????} ????????}); ????????? ????????//支持JavaScript ????????webView.getSettings().setJavaScriptEnabled(true); ????????//加載網頁APP地址,只要界面做的像APP就可以了 ????????webView.loadUrl("http://m.abc.com/"); ????} }

判斷也很簡單,JS或者服務器端腳本都可以進行判斷:

1 2 3 4 5 6 7 8 var inMyApp = /MyApp\/(\d\.\d)/.exec(navigator.userAgent) if( inMyApp ){ ????console.log("Yes, Version:" + inMyApp[1]); //不在APP內 ????//Yes, Version:2.0 }else{ ????console.log("No"); //不在APP內 ????//No }

總結

以上是生活随笔為你收集整理的通过 UserAgent 判断是否在我们自己的安卓APP中的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。