首页 文章

Android意图打开用户首选的浏览器

提问于
浏览
12

我一直试图找出如何创建一个意图,打开用户首选的浏览器而不指定URL . 我知道如何通过提供这样的特定URL来打开它:

Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setData(android.net.Uri.parse("http://www.google.com"));
context.startActivity(intent);

我不想打开浏览器到任何页面,特别是设置主页或用户最后的页面 . 我已经考虑过在应用程序中查找主页集,但是你无法使用默认的浏览器应用程序,因为它是私有的 . 有人知道这样做的方法吗?

5 回答

  • 5

    我是这样做的:

    String packageName = "com.android.browser"; 
    String className = "com.android.browser.BrowserActivity"; 
    Intent internetIntent = new Intent(Intent.ACTION_VIEW);
    internetIntent.addCategory(Intent.CATEGORY_LAUNCHER); 
    internetIntent.setClassName(packageName, className); 
    mHomeActivity.startActivity(internetIntent);
    

    如果您没有设置主页,则会打开一个空白页面(至少在Android 2.1中) .

  • 2
    Uri uri = Uri.parse("www.google.com");
                Intent intent = new Intent(Intent.ACTION_VIEW,uri);
                // Create and start the chooser
                Intent chooser = Intent.createChooser(intent, "Open with");
                startActivity(chooser);
    

    此代码创建打开用户指定浏览器的意图 .

  • 1

    这是一个迟到的答案,但看起来这个功能在API 15中可用:

    Intent browser = Intent.makeMainSelectorActivity(
             Intent.ACTION_VIEW, 
             Intent.CATEGORY_APP_BROWSER);
    
      startActivity(browser);
    

    Docs for makeMainSelectorActivity

  • 9

    用户指定的主页URL将存储在他们正在使用的任何浏览器应用的首选项中 . 使用Androids的“沙盒”应用程序模型,除非应用程序具有允许访问的内容提供程序,否则您将无权访问此应用程序 . 此外,内容提供商在浏览器应用程序之间会有所不同,您将很难覆盖确实存在的应用程序 .

    您是否尝试过打开尝试使用JavaScript更新用户主页网址的网页?

  • 0

    使用下面的代码

    Intent sendIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.stackoverflow.com"));
    Intent chooser = Intent.createChooser(sendIntent, "Choose Your Browser");
    if (sendIntent.resolveActivity(getPackageManager()) != null) 
        startActivity(chooser);
    

相关问题