Android 打开浏览器

  • Android,打开浏览器,发Intent打开网页

在 Android app 中,如果我们期望通过手机上安装的浏览器打开我们指定的网页,我们可以通过发送 intent 的方式唤起手机上安装的浏览器。

如果手机上安装有多个浏览器,系统会弹出一个选择框让用户选择采用哪个浏览器,有些手机还可以通过设置默认浏览器的方式,自动唤起用户指定的浏览器。

示例代码:

Uri uri = Uri.parse("https://spacepage.top/");
Intent intent = new Intent(Intent.ACTION_VIEW,uri);
startActivity(intent);

等同于:

Intent intent = new Intent(Intent.ACTION_VIEW); 
intent.setData(Uri.parse("https://spacepage.top/"));
startActivity(intent);

为了安全起见,你还可能需要做一个 try catch 操作,如果手机上没有任何浏览器的话,会收到一个异常,如果不处理,这里可能会崩溃。

打开指定的浏览器

如果我们希望打开指定的浏览器,那么首先,你需要知道浏览器的包名和类名,几个大厂的浏览器的启动 Activity 的类名一般也比较固定。

指定浏览器的同时也承担了用户没有安装该浏览器的风险,要做好了预案,比如 try catch 肯定是必要的。

Uri uri = Uri.parse("https://spacepage.top/");
Intent intent = new Intent(Intent.ACTION_VIEW,uri);
//打开UC浏览器
//intent.setClassName("com.UCMobile","com.uc.browser.InnerUCMobile");
//打开QQ浏览器
intent.setClassName("com.tencent.mtt","com.tencent.mtt.MainActivity");
startActivity(intent);

打开系统自带的浏览器

在实际用户场景上,我们经常会发现,某些应用有意的,无意的,会拦截网页打开的 intent,但又不能很好的打开网页,而用户可能还意外的勾选了默认打开,导致一直不能正常打开网页,而大部分用户是不知道如何去修改设置的。

于是,这个时候,如果我们很希望打开的是系统自带的浏览器,虽然用户体验上会降低一下,毕竟大部分厂商自己搞的浏览器还都是粗糙的。

Uri uri = Uri.parse("https://spacepage.top/"); 
Intent intent = new Intent(Intent.ACTION_VIEW,uri);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setClassName("com.android.browser","com.android.browser.BrowserActivity");
startActivity(intent);

相关文章

- EOF -

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动。
转载请注明:文章转载自 Binkery 技术博客 [https://binkery.com]
本文标题: Android 打开浏览器
本文地址: https://binkery.com/archives/2019.12.31-打开浏览器.html