Android:只需点击一下按钮即可打开网站

时间:2015-04-03 04:27:11

标签: android

我想在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);

应用程序在此之后崩溃。

请帮助我在这种情况下做什么。

先谢谢。

2 个答案:

答案 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);
    }
}