使用 Sharesheet 分享 Android App Links

使用 Sharesheet 实现样式丰富的链接分享

Android App Link 让你的应用可以替代浏览器打开 Web 链接。我们已经在 Deep Links Crash Course 一文中涵盖了处理这些链接的方法。为了让你的应用可以更进一步打开深度链接,还需要能够针对特定内容创建和分享深度链接。

分享应用内容的相关链接,是 Android 系统中非常重要的一种行为。分享链接可以使你的应用及用户能够参与协作、交流、社交网络等,这些行为均可以增加你应用的粘性。Android Sharesheet 是分享链接内容的绝佳工具,本文将会向你揭示,为什么你应该使用 Sharesheet,并介绍如何使用它处理被链接的内容。让我们开始吧。

首先,什么是 Sharesheet?Sharesheet 是 Android 提供的,用于直接向用户或应用发送内容的分享界面,当你的应用通过 intent 使用 ACTION_SEND action 调用 Intent.createChooser 时,Sharesheet 就会显示出来。Sharesheet 提供了一个不需要使用显式的 Intent 即可与其他应用分享数据的高效方式。

下面的示例将会调用 Sharesheet,并展示相关的分享目标。你的用户将看到一个为他们所安装的应用和联系人量身做的列表。

使用 Sharesheet 分享 Android App Links

这是一个非常基础的示例。相比起发送简单的纯文本,我们其实希望能够分享一些更有趣的内容。如果你的应用支持 Android App Link,Sharesheet 将可以分享应用内容的链接。让我们看一下示例链接:“https://example.com/specials/spaghetti” 。对于用户来说可以清楚地看到,这个链接指向的是意大利面,我们可以在不使用 Sharesheet 时即可看出这一点。

不过,有些时候,链接目标可能不那么清晰。作为示例,链接至 Google Doc 的链接通常看起来像下面这样:https://docs.google.com/document/d/1TejHHDrz…NotARealLink。这种情况下,只通过链接本身可能无法了解他们实际分享的内容。在这种情况下,我们需要考虑加入更为丰富的预览内容。

巧的是,这一指南同样来自 Android 文档:https://developer.android.com/training/sharing/send

考虑分享一个像下面这样的复杂 URL:
https://www.google.com/search?ei=2rRVXcLkJajM0PEPoLy7oA4.
更为丰富的预览可以帮助你的用户确定正在分享的内容。

具体来说,更为丰富的预览包含额外的文本及一张缩略图。我们可以通过添加描述至 Intent.EXTRA_TITLE 设置标题文本。为了向 Sharesheet 添加图片,我们需要将 Intent的 clipData 参数设置为由 file-provider支持的内容URI。本文的余下内容,将会带你了解如何通过任意的URLSharesheet添加图片,从而提供更为丰富的预览。

首先,让我们在 AndroidManifest.xml 文件中创建一个 file-provider。

接下来,我们需要将 filepaths.xml 文件添加到 XML 目录。本次的示例需要我们从根目录或缓存目录提供图片,所以示例 filepaths.xml 将会把 “/images” 的内容 URI 链接至我们的缓存根目录。

根据 FileProvider API 文档,我们可能需要创建一个 FileProvider 的空实现。原文如下:

你可以直接使用而不是扩展 FileProvider,但这样做并不可靠,可能导致在一些设备上崩溃。

到这一步,我们已经声明了一个 FileProvider,它可以为缓存根目录中的图片创建内容 URI。我们可以调用 FileProvider.getUriForFile 创建 URI,以供 Sharesheet 显示图片。

有了链接、标题和缩略图的内容 URI,我们便可以创建 Intent 了。

大功告成!现在可以看到 Sharesheet 已经包含富文本预览了。

使用 Sharesheet 分享 Android App Links

谷饭原创编/译文章,作者:Tao, Yulu,转载请注明出处来自谷饭,并加入本文链接: https://www.goofan.com/2023/03/share-android-app-links-with-sharesheet/

(0)
Tao, YuluTao, Yulu谷饭作者
上一篇 2023年 3月 10日 上午10:33
下一篇 2023年 3月 14日 上午10:14

相关推荐

wechat
关注微信公众号