美文网首页AndroidAndroid我的Android之路
Android调用手机浏览器的正确方式

Android调用手机浏览器的正确方式

作者: 程序亦非猿 | 来源:发表于2015-07-29 15:21 被阅读4959次

    有时候我们需要调用手机的浏览器,搜索过会我们一般都能找到这样的代码:

    //从其他浏览器打开
    Intent intent = new Intent();
    intent.setAction(Intent.ACTION_VIEW);
    Uri content_url = Uri.parse(url);
    intent.setData(content_url);
    startActivity(intent);
    

    但是,这样做并不严谨,为什么呢?
    如果没有浏览器的话,会导致找不到接受这个Action的Activity,会崩溃.(不要问我为什么会有没有浏览器的手机...告诉你,就是有!!!)

    So,应该这么写,注意最后一句:

    startActivity(Intent.createChooser(intent, "请选择浏览器"));

    //从其他浏览器打开
    Intent intent = new Intent();
    intent.setAction(Intent.ACTION_VIEW);
    Uri content_url = Uri.parse(url);
    intent.setData(content_url);
    startActivity(Intent.createChooser(intent, "请选择浏览器"));
    
    没有浏览器的效果图没有浏览器的效果图
    多个浏览器效果图多个浏览器效果图

    同时,这样也能给用户选择的机会,有助于提升与用户体验!~

    如果有更好的方式,请告诉我~~

    经网友@dongorigin 提示,其实我们可以在startActivity之前检查是否有能接受的activity:

    if (intent.resolveActivity(getPackageManager()) != null) {
        startActivity(intent);
    }
    

    这样我们的选择就更加多了,可以在发现没有能接受action的activity时候,给用户一个提示~感谢@dongorigin

    延伸阅读

    http://developer.android.com/intl/zh-cn/guide/components/intents-common.html

    与我联系,交个朋友

    我的新浪微博

    我的Github

    相关文章

      网友评论

      本文标题:Android调用手机浏览器的正确方式

      本文链接:https://www.haomeiwen.com/subject/vowmqttx.html