Android可以实现指定某一个浏览器访问指定的网页,但是得先判断是否安装了该浏览器。
下面的只是举例了chrome浏览器、华为浏览器、和默认浏览器
来加载网页
public void jump(View view) {
Intent intent = new Intent();
//Display the data to the user.
intent.setAction(Intent.ACTION_VIEW);
//Activities that can be safely invoked from a browser must support this category
intent.addCategory(Intent.CATEGORY_BROWSABLE);
Uri uri = Uri.parse("http://www.baidu.com");
intent.setData(uri);
if (isApplicationAvilible(this, "com.android.browser")) {
//Chrome 浏览器
intent.setPackage("com.android.browser");
} else if (isApplicationAvilible(this, "com.android.chrome")) {
// 默认浏览器 (测试了一下可以启动荣耀8和小米10的系统自带的默认浏览器)
intent.setPackage("com.android.chrome");
} else if (isApplicationAvilible(this, "com.hicloud.browser")) {
// 华为浏览器
intent.setPackage("com.hicloud.browser");
}else {
return;
}
// ...
startActivity(intent);
}
/**
* 判断手机是否安装某个应用
*
* @param context
* @param appPackageName 应用包名
* @return true:安装,false:未安装
*/
public static boolean isApplicationAvilible(Context context, String appPackageName) {
PackageManager packageManager = context.getPackageManager();// 获取packagemanager
List<PackageInfo> list = packageManager.getInstalledPackages(0);// 获取所有已安装程序的包信息
if (list != null) {
for (int i = 0; i < list.size(); i++) {
String packageName = list.get(i).packageName;
if (appPackageName.equals(packageName)) {
return true;
}
}
}
return false;
}
便捷的获取浏览器app的包名的方法:
- 有的手机的应用详情里面有app的包名信息
- 可以使用PackageManager 获取安装的应用的包名等信息,可以参考
https://www.jianshu.com/p/1688f5e39d83