像 Gmail 应用程序一样在 Android WebView 中处理外部链接

9
我是一名网页开发人员。我目前正在使用Android Studio开发基于WebView的Android应用程序,该应用程序作为我的网站的android应用程序访问。我的一个网页包含许多外部链接。我的目标是使Android应用程序能够像Gmail应用程序一样处理外部链接(也像Facebook和Line一样)。 以下是Gmail应用程序的示例。 电子邮件包含外部链接 点击链接,然后应用程序打开一个新活动,就像浏览器一样,而不离开Gmail应用程序 有任何想法如何实现吗?

1
你需要Chrome自定义标签页 - Gergely Kőrössy
嗨@GergelyKőrössy,感谢您的帮助。我会尝试的。 - Dika
@Dika请在此处检查演示代码链接 - Sanjay Kakadiya
1个回答

13

很简单,你需要像Gergely评论中建议的那样使用Chrome自定义标签。下面是一个小型的可用代码,将帮助你实现此功能。

首先,在build.gradle(Module:app)中添加以下依赖项。

compile 'com.android.support:customtabs:23.4.0'

将以下函数添加到您的代码中,并简单地将字符串URL传递给它。

将以下函数添加到您的代码中,并简单地将字符串URL传递给它。

private void redirectUsingCustomTab(String url)
{
    Uri uri = Uri.parse(url);

    CustomTabsIntent.Builder intentBuilder = new CustomTabsIntent.Builder();

    // set desired toolbar colors
    intentBuilder.setToolbarColor(ContextCompat.getColor(this, R.color.colorPrimary));
    intentBuilder.setSecondaryToolbarColor(ContextCompat.getColor(this, R.color.colorPrimaryDark));

    // add start and exit animations if you want(optional)
    /*intentBuilder.setStartAnimations(this, android.R.anim.slide_in_left, android.R.anim.slide_out_right);
    intentBuilder.setExitAnimations(this, android.R.anim.slide_in_left,
            android.R.anim.slide_out_right);*/

    CustomTabsIntent customTabsIntent = intentBuilder.build();

    customTabsIntent.launchUrl(activity, uri);
}

其余的事情会自己处理。由于Chrome自定义选项卡可以进行定制,所以可以做很多事情,比如您可以将菜单添加到工具栏中。有关详细信息,您可以访问Google官方文档这里

希望这可以帮助您入门 :)


1
不需要,你只需要传递托管在服务器上的HTML页面的URL。 - Geek
如果用户没有安装Chrome浏览器,是否有什么需要担心的?我的意思是,即使没有安装Chrome,它也能正常工作吗? - Moinkhan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接