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

//从其他浏览器打开

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

延伸阅读

与我联系,交个朋友

android调用网页方法,Android调用手机浏览器的正确方式相关推荐

  1. import android.view.window;,尝试在空对象引用上调用虚拟方法‘android.view.Window$回调...

    尝试在空对象引用上调用虚拟方法'android.view.Window$回调-android.view.Window.getCallback()' 当我SplashActivity打开LoginAct ...

  2. Android 11 微信友盟分享报错 分享异常 Android 11及以上系统的手机需要使用FileProvider方式分享

    微信分享朋友圈报错 分享异常 Android 11及以上系统的手机需要使用FileProvider方式分享 项目集成了友盟的分享,在Android 11系统手机上,微信分享朋友圈失败: 集成时以按文档 ...

  3. 网页能够兼容所有手机浏览器—杂记(2)

    网页能够兼容所有手机浏览器 <!-- 优先使用 IE 最新版本和 Chrome --><meta http-equiv="X-UA-Compatible" con ...

  4. uniapp调用手机摄像头_uniapp原生插件开发之调用原生方法(android)

    需要实现的功能: 点击uniapp页面view,传递参数,调用android原生代码,然后原生代码处理数据,返回到uniapp页面 步骤 1.编写uniapp的视图页面 {{title}} 点击调用a ...

  5. android 虚方法,尝试在空对象引用上调用虚方法’android.view.View android.view.View.getRootView()’...

    我收到这个错误, "Attempt to invoke virtual method 'android.view.View android.view.View.getRootView()' ...

  6. android view使用方法,android – 如何使用getView()方法,它在哪里被调用?

    我是Android开发的新手,并且一直遵循Android网站上提供的教程.我目前在视图教程部分,特别是Grid Views: Hello, Grid View Tutorial的教程. 我无法通过适配 ...

  7. Android屏幕监视方法,Android 关于手机屏幕的那些事

    1.屏幕方向参数: ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED,//未指定,此为默认值.由Android系统自己选择合适的方向. ActivityInfo. ...

  8. android获取ip方法,Android开发准确获取手机IP地址的两种方式

    最近看了好多网上获取IP地址的例子,发现好多都不完全准确,这里我写一下获取ip地址的两种方式. 比如微信支付,后台在做接口的时候,要求App端传入IP地址,我们需要判断是网络环境,WI-FI还是3G, ...

  9. android电量优化方法,Android性能优化——电池使用优化

    为什么要做电量优化 Android应用开发中,需要考虑的情况是,如何优化电量使用,让我们的app不会因为电量消耗过高被用户排斥,或者被其他安全应用报告. 什么样的行为会导致电量损耗过高 对于移动设备而 ...

最新文章

  1. vue 带全选和多选的表格怎么写_vue中使用计算属性巧妙的实现多选框的“全选”...
  2. python 3.5opencv 环境搭建_Python3.5+openCv进行人脸识别的环境搭建(Windows下)
  3. ASP.NET Core Web Api之JWT刷新Token(三)
  4. Git常用命令——基本操作
  5. 游戏修改器制作教程七:注入DLL的各种姿势
  6. 如何请求您的Apple ID帐户数据的副本
  7. 星星之火-57:前传接口 CPRI的速率、能力、小区带宽之间的映射关系
  8. win10自带输入法变为繁体字
  9. 单片机中段程序_80C51单片机中断的编程使用方法介绍
  10. 大数据解决方案:解决T+0问题
  11. 物联网案例_讨论物联网采用的商业案例
  12. tkinter向文本框里加内容_给tkinter文本框添加右键菜单
  13. xlsxwriter进度条php,PHP导出Excel数据导出,前端进度条实现方式
  14. 数组操作 push()
  15. allegro PCB 检查报告中的Report DangLine以及禁用Antenna vias
  16. 关于安装Ubuntu20.04重启后反复进入bios界面
  17. LED有哪些优点,LED驱动电源方案
  18. Dashy: 一款功能超强大,颜值爆表的可定制专属导航页工具
  19. catia草图里写字_请问CATIA如何在曲面上写字,麻烦高手解答详细步骤?
  20. 网络信息安全:RC4加密算法的实现

热门文章

  1. chi660e电化学工作站软件_RuddlesdenPopper 型锰酸盐LaSr2Mn2O7的氧还原性能和作为电化学电容器电极材料的性能研究...
  2. android8.1新功能,Android 8.1新特性:烦人的“正在后台运行”,拜拜
  3. cedit多行文本设置透明背景会重叠_PPT脱白教程11期【形状篇2】聊聊形状和文本框的那些事儿~...
  4. python期末设计作品_期末作品检查
  5. LL-verilog语法:case用法
  6. 手动选择显示_QGIS 二次开发笔记(2)——显示图层
  7. ppt文件限打开次数_PPT冷知识25条!看到第一条我就翻了车…
  8. pythonrequest得替代_Python爬虫通过替换http request header来欺骗浏览器实现登录功能...
  9. 科学家利用计算机模型,科学家尝试利用计算机模拟整个宇宙的演化
  10. matlab中quat2angle,RPY_Euler_Quaternion_AngleAxis角度转化:Matlab、Python、Halcon版本