Appclip初窥

简介

appclip是一个用户需要时才由系统触发下载的native小程序

appclip关联宿主App,但没有宿主app也可以运行

Appclip experience是打开链接后用户看到弹起的小卡片,是开启appClip的入口,初次下载后可以通过用户界面上的对应icon再次打开。一个appclip可以有多个appclip experience

三者之间的关系

用户使用时通过各种途径比如NFC或扫码获取到url,Appclip experience会拉起一个小卡片,用户点击Open后触发appclip下载并启动,通过NSUserActivity获取到url,在appclip里路由到指定页面。

启动流程

唤起applicp入口:NFC、二维码、AppclipCode、苹果地图上的链接、Siri附近推荐、Safari链接、短信里的链接(微信链接应该需要跳转到safari打开)

Appclip Code:

appclip的一个优势是可以将宿主app入口比较深的模块立即暴露给用户在最需要的时机打开。对于宿主app,启动入口更多了;对于功能模块来说,在用户手机上有自己的固定入口,曝光机会更多,用户触达路径更短了

开发appclip

其实和开发一个app类似,尽量重用宿主app里已有代码

app工程里新增一个appclip target,asset和文件加到appclip target,添加相关依赖库

不支持的库: CallKit, CareKit, CloudKit, HealthKit, HomeKit, ResearchKit, SensorKit, and Speech

Link appclip三部曲
image
1. 配置web服务器和appclip
image

跟添加webcredential自动填充密码的步骤类似,webServer根路径要放一个文件,key为“appclip”,value加上appclip的bundle id。

image

从NSUserActivity拿到url,解析后跳转对应页面,如果用户已安装宿主app,系统会打开宿主app,所以宿主里也需要保证有相应跳转逻辑。可参考https://developer.apple.com/videos/play/wwdc2019/717

image

添加test url 测试appclip

image
2. 配置appclip卡片体验和appstore
  • 可参考

  • https://developer.apple.com/videos/play/wwdc2020/10651

  • https://developer.apple.com/videos/play/wwdc2020/10172

  • 相关限制

image

如果想在safari和message以外入口打开,比如NFC,一定要设置下面这个高级体验

image

一个appclip可以设置n个url,每个url对应一个appclip experience,有自己的icon;也可以通过prefix后加各种query来拓展一个appclip experience,在appclip代码里路由到不同业务逻辑

image

相关设置,可以把弹窗和真实地址关联

image
3. 配置smart appclip banner

也就是网页里拉起appclip experience的入口,添加网页标签即可,仅限Safari

image

default和advanced experience

image

总结

  • Appclip是一个即用即走的native小程序,专门用于某个特定使用场景,需要和app一起提交审核

  • 和宿主app互斥,如果用户已安装宿主app,则不会触发appclip的下载,而是直接由appclip experience打开宿主app;如果安装appclip后再安装宿主app,appclip会自动卸载

  • 由于appclip触发时机就是用户最需要的时候,appclip应该尽可能小,来保证快速下载和迅速启动,所以大小有10MB限制,但可以开启appclip后下载其他需要的资源

  • 支持applePay、notification、登录等几乎所有宿主app能力,用户隐私(比如健康数据)和一些系统库受限

  • 解析二维码或苹果码得到url,对应一个appclip experience,在appstore配置好后,系统解析到对应url,会弹出对应appclip experience,用户点击open后,自动下载app clip的二进制文件运行

  • appclip下载后,会在用户手机界面保留appclip experience图标,可以再次打开,appclip几天不用会卸载,所以只能作为cache存储数据

  • 可以通过SKOverLay引导用户下载宿主app

  • 可以和app共享数据、权限,安装app后用户隐私权限自动迁移到宿主App,放在group container里的用户数据会自动迁移到app,group container外的数据会随app clip卸载丢失

Reference

demo:https://developer.apple.com/documentation/swiftui/fruta_building_a_feature-rich_app_with_swiftui

https://developer.apple.com/videos/play/wwdc2020/10174

https://developer.apple.com/videos/play/wwdc2020/10146

https://developer.apple.com/videos/play/wwdc2020/10118

https://developer.apple.com/videos/play/wwdc2020/10172

https://developer.apple.com/documentation/app_clips/creating_an_app_clip

https://developer.apple.com/documentation/app_clips/developing_a_great_app_clip

你可能感兴趣的:(Appclip初窥)