我想在Android应用中点击一个按钮打开一个网站。
我已经尝试了
Intent intent=new Intent(Intent.ACTION_VIEW,Uri.parse("https://www.google.com"));
intent.addCategory(Intent.CATEGORY_BROWSABLE);
startActivity(intent);
它有效。
但问题是每当我在网址中打开任何没有"https://"
的网站时,应用程序就会崩溃。
例如
Intent intent=new Intent(Intent.ACTION_VIEW,Uri.parse("www.google.com"));
intent.addCategory(Intent.CATEGORY_BROWSABLE);
startActivity(intent);
应用程序在此之后崩溃。
请帮助我在这种情况下做什么。
先谢谢。
答案 0 :(得分:3)
您可以手动检查案例!
if (!url.startsWith("https://") && !url.startsWith("http://")){
url = "http://" + url;
}
Intent intent= new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(intent);
答案 1 :(得分:0)
这是如何在用户手机中选择的浏览器中启动链接
/**
* Function to launch a default URL
*/
private void launchURL() {
try {
Intent i = new Intent("android.intent.action.MAIN");
/**
* Why the FLAG_ACTIVITY_NEW_TASK is needed
* http://stackoverflow.com/
* questions/3689581/calling-startactivity-from
* -outside-of-an-activity
*/
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.setComponent(ComponentName
.unflattenFromString("com.android.chrome/com.android.chrome.Main"));
i.addCategory("android.intent.category.LAUNCHER");
i.setData(Uri
.parse("http://www.google.com"));
startActivity(i);
} catch (ActivityNotFoundException e) {
// Chrome is probably not installed
Intent i = new Intent(
Intent.ACTION_VIEW,
Uri.parse("http://www.google.com"));
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i);
}
}