原生跳轉(zhuǎn)外部瀏覽器--1加特殊處理

public void startWebBrowser(Context context, String url) {

final Intent intent =new Intent();

? ? ? ? intent.setAction(Intent.ACTION_VIEW);

? ? ? ? intent.addCategory(Intent.CATEGORY_BROWSABLE);

? ? ? ? intent.setData(Uri.parse(url));

? ? ? ? final ComponentName componentName = resolveComponent(context, intent);

? ? ? ? if (componentName !=null) {

Log.d("componentName==>", componentName.getClassName());

//? ? ? ? ? ? ToastUtil.show(componentName.getClassName());

? ? ? ? ? ? context.startActivity(Intent.createChooser(intent, "選擇瀏覽器"));

? ? ? ? }else {

Log.d("componentName==>", "連接錯誤或沒有瀏覽器--跳轉(zhuǎn)本地webview");

? ? ? ? ? ? Uri uri = Uri.parse(url);

? ? ? ? ? ? Intent intent2 =new Intent(Intent.ACTION_VIEW, uri);

? ? ? ? ? ? context.startActivity(intent2);

//? ? ? ? ? ? ToastUtil.show("沒有瀏覽器");

//? ? ? ? ? ? BrowserActivity.start(getActivity_(), url);

? ? ? ? }

}

private ComponentNameresolveComponent(Context context, Intent intent) {

// final ComponentName componentName = intent.resolveActivity(context.getPackageManager());

? ? ? ? PackageManager pm = context.getPackageManager();

? ? ? ? ResolveInfo ri = pm.resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY);

? ? ? ? if (ri !=null) {

return new ComponentName(

ri.activityInfo.applicationInfo.packageName, ri.activityInfo.name);

? ? ? ? }

return null;

? ? }


正常瀏覽器: com.android.browser? ? oneplus的是com.heytap.browser? ?所以onplus手機上面就直接是? component 的名字打開就行

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容