用Android自带浏览器打开网页

启动android默认浏览器

1
2
3
4
5
val intent = Intent()
intent.data = Uri.parse(url)
intent.action = Intent.ACTION_VIEW
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
context.startActivity(intent)

启动指定浏览器打开(不推荐)

警告:爱加密加固之后的包,会把这个异常给吃掉,导致无法跳转,也无反应。

这种方式需要处理手机中不存在指定浏览器的情况

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
try {
val intent = Intent()
intent.data = Uri.parse(targetUrl)
intent.action = Intent.ACTION_VIEW
intent.setClassName(
"com.android.browser",
"com.android.browser.BrowserActivity"
)
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
context.startActivity(intent)
} catch (e: Exception) {
e.printStackTrace()

// android.content.ActivityNotFoundException: Unable to find explicit activity class {com.android.browser/com.android.browser.BrowserActivity}; have you declared this activity in your AndroidManifest.xml?
val intent = Intent()
intent.data = Uri.parse(url)
intent.action = Intent.ACTION_VIEW
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
context.startActivity(intent)
}

由于华为鸿蒙系统已经没有Android默认的浏览器,所以此处必须要有异常处理,或者提前处理手机中不存在指定浏览器的情况。

市场上常用浏览器的包名和类名@20220630

1
2
3
4
5
6
华为: "com.huawei.browser/com.huawei.browser.BrowserMainActivity"
Vivo: "com.vivo.browser/com.vivo.browser.MainActivity"
小米: "name=com.android.browser/com.android.browser.BrowserActivity"
uc浏览器: "com.uc.browser", "com.uc.browser.ActivityUpdate"
opera: "com.opera.mini.android", "com.opera.mini.android.Browser"
qq浏览器: "com.tencent.mtt", "com.tencent.mtt.MainActivity"
作者

Dench

发布于

2022-06-29

更新于

2022-06-29

许可协议

CC BY-NC-SA 4.0

Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×