前言
App clip 是 App 应用程序的轻量级版本,可在用户需要的位置和时间提供某些功能。在 Xcode 中, App clip 是和你主应用程序共享代码和资源的附加 Target。App clip 还可以访问和 App 相同的 frameworks。例如,您的 App clip 可以请求访问摄像头,将敏感数据存储在本地钥匙串中,连接到蓝牙设备等等。但是,在保护用户隐私和保留资源的前提下,App clip 也有一定的局限性。
使用 App clip 的场景
用户通过执行以下调用来启动 App clip:
- 在物理位置扫描 NFC 标签或二维码
- 选择 Siri 提供的基于位置的建议,例如定位
- 在 Map 应用中点击链接
- 在网站上点击一个智能的 App Banner
- 点击某人在 iMessage 应用中共享的链接
当用户调用 App clip 时,系统首先验证 App clip 的元数据及其关联的URL。然后,使用 URL 来决定 App clip card 上显示什么数据 (App clip card 是一个我们调用后再底部弹出的 Sheet 视图)。App clip card 提供了很多信息,并提供了用户点击以启动应用程序剪辑的按钮。
用户启动应用 App clip 时,系统会将 URL 传递给它。启动后,App clip 将访问 URL 并对其进行解析以提取信息,然后使用该信息来更新其用户界面。
增强用户体验
App clip 不会显示在主屏幕上,并且用户无法以管理 App 的方式对其进行管理。相反,一段时间不活动后,系统会从设备中删除 App clip 。因此,为您的 App clip 提供出色的用户体验非常重要。
App clip 应该避免复杂的界面元素(如标签栏或复杂的表单),从而提供线性,集中的用户体验。在要求用户执行复杂的任务的时候,应该减少使用复杂性的技术。例如,在 App clip 中使用 Apple Pay 来支付费用,或者利用 Sign in with Apple 来避免复杂的用户登录注册。
Keep Your App Clip Small
App clip 的大小必须不超过10 MB,才能提供即时启动。如果可能,将您的应用剪辑保持在此限制以下。
App clip 的可用框架
App clip 可以使用SwiftUI和UIKit,并且可以访问与完整应用程序相同的框架。但是,以下框架不适用于 App clip :CallKit,CareKit,CloudKit,HealthKit,HomeKit,ResearchKit,SensorKit 和 Speech。
在 App clip 使用这些框架中的任何一个都不会导致编译时错误,但是它们的 API 返回的值会指示运行时不可用,空数据或错误代码。例如,当您从应用程序剪辑中调用 HealthKit 的 isHealthDataAvailable()时,它会返回false。
用户隐私
App clip 可以使用 SKOverlay 或 SKStoreProductViewController 展示广告并推荐其他应用。但是,始终在 App clip 中启用“限制应用程序跟踪”,以保护用户隐私并防止用户跨应用程序和 App clip 进行跟踪。
App clip 无法通过 AppTrackingTransparency 请求授权来跟踪用户,并且 name 和 identifierForVendor 都返回一个空字符串。此外,App clip 无法执行后台活动,例如使用 URLSession 进行后台网络连接或在不使用 App clip 时保持蓝牙连接。App clip 也无法请求连续的位置信息访问权限。但是,他们可能会请求 When In Use authorization,该授权会在第二天凌晨4:00自动重置。
为了保护用户数据,App clip 无法访问:
- 运动和健身数据
- 苹果音乐与媒体
- 来自通讯录,文件,消息,提醒和照片等应用程序的数据
除了与自身相对应的应用程序外,App clip 无法与任何其他应用程序共享数据。
为您的主应用程序保留一些功能
App clip 可提供即时的体验,并专注于为日常任务提供最快的解决方案,但某些功能并不适用 App clip :
- Bonjour 等高级网络功能,或本地 Wi-Fi 网络的配置
- App extensions
- 自定义和设置;例如,创建 settings bundle
- 资料移交和文件开启
- IAP 和 支付卡配置
- 低级Unix功能;例如,BSD通知
- iPad 的分屏
- 注册自定义 URL schemes
- 使用 StoreKit 的 requestReview(in :) 请求用户对该应用进行评论
- 搜索配对蓝牙设备
结尾
到这里,文章就结束了,下篇我们来讲下如何创建一个 App clip。
感兴趣的朋友可以关注我的技术公众号,每周都有优质技术文章推送,微信扫一扫下方二维码即可关注: