之前,我做一個功能時,服務器返回一個url地址,我需要跳轉到指定網頁。卻發現自己不知道怎么做,在網上搜索了資料,最終是解決了問題。這里記錄一下。
啟動android默認瀏覽器
在Android程序中我們可以通過發送隱式Intent來啟動系統默認的瀏覽器。如果手機本身安裝了多個瀏覽器而又沒有設置默認瀏覽器的話,系統將讓用戶選擇使用哪個瀏覽器來打開連接。
1
2
3
|
Uri uri = Uri.parse( "https://www.baidu.com" ); Intent intent = new Intent(Intent.ACTION_VIEW, uri); startActivity(intent); |
啟動指定瀏覽器打開
在Android程序中我們可以通過發送顯式Intent來啟動指定的瀏覽器。例如我手機安裝了多個瀏覽器:QQ瀏覽器、chrome瀏覽器、uc瀏覽器。我可以指定用某個瀏覽器打開這個鏈接。例如打開QQ瀏覽器如下代碼:
1
2
3
4
5
|
Uri uri = Uri.parse( "https://www.baidu.com" ); Intent intent = new Intent(Intent.ACTION_VIEW,uri); //intent.setClassName("com.UCMobile","com.uc.browser.InnerUCMobile");//打開UC瀏覽器 intent.setClassName( "com.tencent.mtt" , "com.tencent.mtt.MainActivity" ); //打開QQ瀏覽器 startActivity(intent); |
用uc瀏覽器打開只需要把打開qq瀏覽器那行代碼注釋掉,然后打開uc瀏覽器那行代碼取消注視就行。
也可以指定系統自帶的瀏覽器:
1
2
3
4
5
6
7
|
Intent intent = new Intent(); intent.setAction( "android.intent.action.VIEW" ); Uri content_url = Uri.parse( "http://www.baidu.com" ); intent.setData(content_url); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setClassName( "com.android.browser" , "com.android.browser.BrowserActivity" ); mContext.startActivity(intent); |
優先使用
推薦用第一種,讓用戶自己去選擇用哪個瀏覽器打開。除非有特殊需求才會用到第二種。
第二種出錯率比較高,假如你想用uc瀏覽器打開,但是新版本的uc瀏覽器不用原來的包名了,這個時候你就沒法打開了。還有uc瀏覽器兼容有問題,我跳轉過去只會顯示UC首頁,而不是直接提打開我提供的http鏈接。但是QQ瀏覽器就沒有這個問題。
簡單講講,其實使用瀏覽器打開網頁就是使用intent跳轉到瀏覽器,設置intent的Action為Intent.ACTION_VIEW,然后設置intent的Data為網址的URI,就可以使用系統的瀏覽器打開網頁。如果需要跳轉到具體的瀏覽器,只需設置setClassName為具體瀏覽器的包名和activity名稱,具體的在代碼里寫的很詳細。
這里還可以使用WebView打開網頁,也很簡單。
1、自定義一個簡單的WebView瀏覽器,設置下面屬性:
1
2
3
|
mWebView = (ProgressWebView) findViewById(R.id.baseweb_webview); mWebView.getSettings().setJavaScriptEnabled( true ); mWebView.setWebViewClient( new WebViewClient()); |
2、指定需要打開的額網頁,在自定義的WebViewActivity中打開,如:
1
2
|
WebView myWebView = (WebView) findViewById(R.id.webview); myWebView.loadUrl(<a href= "http://www.hao123.com" target= "_blank" >http://www.hao123.com</a>); |
以上所述是小編給大家介紹的android 使用瀏覽器打開指定頁面的實現方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對服務器之家網站的支持!
原文鏈接:https://blog.csdn.net/bzlj2912009596/article/details/80673555