admin 管理员组文章数量: 887021
android 通过代码启动第三方浏览器。
1、Intent.createChooser 应用选择器
关键代码:Intent.createChooser(intent, “请选择浏览器”)
效果图:
代码:
/**
* 调用第三方浏览器打开
* @param url 要浏览的资源地址
*/
private fun openBrowser1(url: String) {
val intent = Intent()
intent.action = Intent.ACTION_VIEW
intent.addCategory(Intent.CATEGORY_BROWSABLE)
intent.data = Uri.parse(url)
// 注意此处的判断intent.resolveActivity()可以返回显示该Intent的Activity对应的组件名
// 官方解释 : Name of the component implementing an activity that can display the intent
if (intent.resolveActivity(this.packageManager) != null) {
val componentName = intent.resolveActivity(this.packageManager)
this.startActivity(Intent.createChooser(intent, "请选择浏览器"))
} else {
Toast.makeText(this, "请下载浏览器", Toast.LENGTH_SHORT).show()
}
}
问题:
如果手机只安装了一个浏览器,这个时候大概率会出现调不起来的情况(没有反应);
所以上述写法,适合手机安装了多个浏览器的时候。
系统日志:
2021-08-26 15:07:25.154 31661-500/? E/ActivityManager: check screen state before start activity screen STATE = true
2021-08-26 15:07:25.155 31661-500/? I/ActivityManager: START u0 {act=android.intent.action.CHOOSER cmp=android/com.android.internal.app.ChooserActivity (has extras)} from uid 10797 on display 0
2021-08-26 15:07:25.155 31661-500/? D/ActivityManager: sAllowedServices length= 0
2021-08-26 15:07:25.342 31661-32339/? E/ActivityManager: check screen state before start activity screen STATE = true
2、直接启动浏览器
效果图:
代码:
private fun openBrowser2(url: String) {
val uri = Uri.parse("https://www.baidu")
val intent = Intent(Intent.ACTION_VIEW, uri)
startActivity(intent)
}
直接启动浏览器(使用系统的选择界面),如果只有一个浏览器,也能成功启动;
版权声明:本文标题:android启动第三方浏览器问题 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1728364017h1234006.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论