C4a490a6ab137eaf8f2ecc2cbffac909
WWDC20 10118 - 为其他商户构建 App Clips

WDC20 10118 - Create app clips for other businesses 视频

概述

这个主题讲述如何为其他商户构建 App Clips 体验,例如某外卖 App 如何帮各个不同餐饮商户构建基于他们自己品牌的 App Clips 来支持预定餐桌,点餐等服务。只需在一个主 App 中创建唯一的 App Clips 库就可以为不同商户提供各自独特的 App Clip 体验。同时讲述了 App Clips 的最佳实践,包括如何上传独特的商户信息,处理入口链接,路由推送消息,处理存储和恢复会话状态等等。也讲述了各种 App Clips 体验图标类型的差异性,如何呈现和定制这些图标。

应用场景

本主题通过几个例子为我们呈现为什么要为其他商家提供 App Clips 体验。

商户聚合性 App

例子中给了一个叫做 Food Grid 的 App,这有点像某团外卖 App。一旦该 App 为各个商家构建了 App Clips,用户在使用 Siri 查找附近餐厅或者在使用 Apple Maps 的时候会出现这些商家的 App Clips,哪怕该用户没有安装 Food Grid App,这有点像小程序,把线下商户和线上无缝嫁接。

为商户提供增值服务

有些商户没有能力或者资金来开发与维护自己独立的 App,你可以通过 App Clips 来为这些商户提供增值服务,例如积分卡服务。你可以帮商户提供 NFC,QR Code 等手段唤醒 App Clips 来享受增值服务。例如某付宝在买单后扫描自动添加该商户的积分,从而提高用户的粘性。

贴牌 (White Label) 应用

独立开发者的大航海时代再次来临,搞到我都心痒痒再干一场。我们可以为某个行业(例如咖啡店行业)做一个聚合类的 App,然后为各个咖啡店换皮成各个单独的 App Clip。

构建技术

开发 App Clips 和开发普通 App 没什么大区别,我们可以使用 SwiftUI 或者传统的 UIKit 来进行开发。App 原有的代码都可以大幅度地重用,简单到可以把 App 的源码加入到 App Clips Target 就可以了。

唤醒渠道

目前 App Clips 的唤醒渠道包括:

  • NFC
  • QR Codes
  • Apple Maps App
  • 附近智能提示
  • Safari
  • Messages App
  • Spotlight (上述 Slide 没有列出)
  • App Library (上述 Slide 没有列出)

可以看到除了 NFC 和 QR Code 等线下的入口以外,其他都是 Apple 自己的系统或者 App。可以在 Configure and Link Your App Clips 找到更多相关信息。

不同 App Clips 应用场景的比较

如果你的 App 是聚合性的 App(例如某团外卖),那么特别适合为其他商户提供 App Clips 体验。这样只需要开发唯一的 App Clip 库就可以为每个商户提供独特品牌形象的支持。

动手开干

简单来说只要以下四步就可以构建出 App Clips 体验

  • 有一个主 App
  • 基于你的主 App 构建 App Clip 体验
  • 上传 App Clips 应用
  • 为各个商户定制个性化体验

下面我们详细讲述一下后面三点

构建 App Clips 应用

关于 App Clips 的构建,可以参考其他三个重要的主题:

这里重点提醒一下,当我们支持 App Clip 的时候,必须在 NSUserActivity 里面处理好 Universal Links 以保证每个 URL 都能得到处理。因为一旦用户安装了你的主 App,扫码后会直接打开你的主 App,而不是 App Clip。举个简单例子,例如用户扫码订餐,你的主 App 必须支持该商家的订餐信息,否则用户不知道到底这个码是干什么的。

特殊场景 1 - 处理推送消息

推送消息在 App Clips 体验中非常重要,例如用户点的奶茶做好了,可以通过推送消息来提醒用户领取。当你的 App 为各个商家构建了不同的 App Clip 以后,iOS 系统需要根据 targetContentIdentifier 来把推送消息路由特定的 App Clip 体验去。例如在上面的例子中,iOS 系统是在 targetContentIdentifier 中通过匹配最长的前缀 (foodgrid.example/fantastico) 把消息路由到 Fantastico App Clip 体验。这个地方必须注意做好处理,想想用户在各个地摊点点点,消息乱套就麻烦了。更详细信息可以在 Enabling Notifications in App Clips 查看。

特殊场景 2 - 状态处理

由于 App Clips 体验注重线下体验,这使得处理状态变得尤为重要。这里举个例子:现在全民摆摊,以后某付宝或者某信支付为各个地摊建立特定的 App Clip 体验,用户在后浪串串摊选好了几样菜但还没有确定买单,然后看到同行落魄 iOS 在线炒粉,扫描打开另外一个 App Clip 支持一下,回去后浪串串摊 需要恢复原先的点餐状态来完成一个完整的体验。生命周期处理和状态保存本来就是移动开发的难点,这样我们需要特别注意。

落魄 iOS 在线炒粉

落魄 iOS 在线炒粉

上传 App Clips 应用

App Clips 需要和主 App 一起打包提交并进行审批。更多信息可以看 What's new in App Store Connect

为每个商户配置 App Clip 体验

完成 App Clip 应用上传以后,去到 App Store Connect,选择包含 App Clip 体验的 App 进行配置。由于需要支持不同商户,所以要为每个商户进行不同的个性化配置。

top Created with Sketch.