通过 UserAgent 判断是否在我们自己的安卓APP中
生活随笔
收集整理的這篇文章主要介紹了
通过 UserAgent 判断是否在我们自己的安卓APP中
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
之前 寫過一篇 根據(jù) UserAgent 判斷網(wǎng)頁是在瀏覽器、或在微信、或在APP中 (http://www.miaoqiyuan.cn/p/useragent-in-where),那篇文章能通過 UserAgent 判斷出 是否在微信、瀏覽器或者其他APP中,如果需要判斷是否在我們自己開發(fā)的APP中,就無能為力了。
WebView 提供了 setUserAgentString,可以任意修改 UserAgent。我們只需要在 UserAgent 中增加 自定義的 字符串,就可以在網(wǎng)頁中通過JS判斷是否在我們自己的APP內(nèi)。
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調(diào)用系統(tǒng)瀏覽器或第三方瀏覽器 ????????????????view.loadUrl(url); ????????????????return true; ????????????} ????????????@Override ????????????public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { ????????????????//出現(xiàn)錯誤頁,顯示報錯 ????????????????String data = "<br /><br /><br /><br /><br /><center>無法連接服務(wù)器</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); ????????//加載網(wǎng)頁APP地址,只要界面做的像APP就可以了 ????????webView.loadUrl("http://m.abc.com/"); ????} } |
判斷也很簡單,JS或者服務(wù)器端腳本都可以進行判斷:
| 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內(nèi) ????//Yes, Version:2.0 }else{ ????console.log("No"); //不在APP內(nèi) ????//No } |
總結(jié)
以上是生活随笔為你收集整理的通过 UserAgent 判断是否在我们自己的安卓APP中的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 根据 UserAgent 判断网页是在浏
- 下一篇: android path 详解