Android系統下開啟指定的瀏覽器
阿新 • • 發佈:2019-02-16
工作中遇到一個問題,就是在Android系統上希望將url通過指定的瀏覽器開啟。一般情況下如果系統有幾個瀏覽器並存,那麼系統會提示使用者選擇哪個瀏覽器開啟URL,這種情況下使用者可能就直接放棄打開了,十分影響URL的點選率。
傳統方式開啟瀏覽器瀏覽指定網頁:
指定瀏覽器開啟網頁,首先呼叫queryIntentActivities查詢支援ACTION_VIEW的Resolveinfo。Uri uri = Uri.parse(clickUrl.trim()); Intent Urlintent = new Intent(Intent.ACTION_VIEW, uri); Urlintent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(Urlintent);// 開啟連結
Uri uri = Uri.parse(clickUrl.trim()); Intent urlintent = new Intent(Intent.ACTION_VIEW, uri); PackageManager pm = context.getPackageManager(); //獲取packagemanager List<ResolveInfo> queryactivities = pm.queryIntentActivities(urlintent, PackageManager.GET_INTENT_FILTERS);
如果查詢到的值大於0,那麼表示找到了支援開啟連結的activity,然後可以確定支援開啟連結的應用的activity,然後找activity所屬的包名和activity的名字,然後呼叫urlintent的setClassName設定packagename和activityname。其中BROWERINDEX為系統中儲存的瀏覽器的序號,此處可以指定queryactivities.size()範圍之內的值。
if (queryactivities.size() > 0) { urlintent.setClassName(queryactivities.get(BROWERINDEX).activityInfo.packageName, queryactivities.get(BROWERINDEX).activityInfo.name); urlintent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(urlintent); // 開啟連結 }
最後呼叫startActivity使用指定的瀏覽器開啟URL。