android 指定chrom浏览器打开网页

对于强迫症的人,就想要chrome打开网页怎么办?

如果手机有scan组件的,可以这样打开扫一扫:

网页上

<a href="intent://scan/#Intent;scheme=zxing;package=com.google.zxing.client.android;end"> Take a QR code </a>

android端intent方式

Uri uri = Uri.parse("intent://scan/#Intent;scheme=zxing;package=com.google.zxing.client.android;end");
Intent i = new Intent();
i.setAction(Intent.ACTION_VIEW);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.setData(Uri.parse(url));
startActivity(i);

上面是题外话,现在说正经的

网页方式

window.location.href = 'googlechrome://navigate?url=https://www.baidu.com';

正确的打开方式为:

String url = "http://www.baidu.com";
Intent intent = new Intent(Intent.ACTION_VIEW,Uri.parse(url));
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setPackage("com.android.chrome");
try {
    context.startActivity(intent);
} catch (ActivityNotFoundException ex) {
    // Chrome未安装选择其它浏览器
    intent.setPackage(null);
    //startActivity(Intent.createChooser(intent, "Select Browser"));
    startActivity(intent);
}

方式二:

String url = "http://www.baidu.com";
try {
	Uri uri = Uri.parse("googlechrome://navigate?url=" + url);
	Intent i = new Intent(Intent.ACTION_VIEW, uri);
	i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
	startActivity(i);
} catch (ActivityNotFoundException e) {
	// Chrome未安装
	Uri uri = Uri.parse(url);
	Intent i = new Intent(Intent.ACTION_VIEW, uri);
	i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(i);
}

方式三:

String url = "http://www.baidu.com";
try {
	Intent i = new Intent("android.intent.action.MAIN");
	i.setComponent(ComponentName.unflattenFromString("com.android.chrome/com.android.chrome.Main"));
	i.addCategory("android.intent.category.LAUNCHER");
	i.setData(Uri.parse(url));
	startActivity(i);
} catch (ActivityNotFoundException e) {
	// Chrome未安装
	Uri uri = Uri.parse(url);
	Intent i = new Intent(Intent.ACTION_VIEW, uri);
	i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
	startActivity(i);
}

方式四:

Uri uri = Uri.parse("intent://www.baidu.com#Intent;scheme=http;package=com.android.chrome;end");
Intent i = new Intent(Intent.ACTION_VIEW, uri);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i);

用默认浏览器:

String url = "http://www.baidu.com";
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://"));
ResolveInfo resolveInfo = context.getPackageManager().resolveActivity(browserIntent, PackageManager.MATCH_DEFAULT_ONLY);
String packageName = resolveInfo.activityInfo.packageName;

Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
i.setPackage(packageName);
context.startActivity(i);

默认浏览器方式二:

String url = "http://www.baidu.com";
Intent intent = Intent.makeMainSelectorActivity(Intent.ACTION_MAIN, Intent.CATEGORY_APP_BROWSER);
intent.setData(Uri.parse(url));
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
try {
    startActivity(intent);
} catch (ActivityNotFoundException e) {
	//无浏览器
}

大概就这样,快说离题了。

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注