iOS14 App Clips

关于App Clips

开发一个App Clips的目的是提供你的App中的部分功能让用户可以快速使用,并且不需要下载完整的App。这句话有两个非常重要的点,首先App Clip提供完整应用程序的一部分功能,这表明你一定要有一个完整功能的App,才可以开发上线App Clips,与iOS开发中其他的Extension类似,App Clip也可以理解为一种Extension,其必须由一个宿主App来承载。
一个App Clip也可以理解为是某个App的轻量级版本,用来提供一些完成瞬时的任务的功能,例如为一杯咖啡进行支付、使用店铺提供的优惠券、公共的信息查询等等。
App Clip的启动需要由一个调用方调起,在iOS开发中,更专业点的术语叫invocation,invocation可以是多种形态的,例如通过点击基于位置信息的推荐Banner,点击Sari的推荐或者通过扫描二维码或NFC等。App Clip被invocation调起后,用户可以通过它完成一件专注的任务,当用户不再需要使用它时,它会自动的被iPhone移除,这个过程对用户来说是无感知的,因此App Clip也不会占用用户的桌面空间。

App Clips的开发

在开发过程中,开发一款App Clip与开发正常的iOS应用并没有特别大的差异,它与开发普通iOS应用有着相关的Framework支持,例如使用UIKit开发应用的界面。同样,App Clips也可以像完整App一样的使用设备的硬件(当然需要申请对应的权限),例如使用相机、蓝牙等等。还有一点需要注意,一个完整的App只能拥有一个App Clip,并且App Clip提供的功能在主App中也需要被完整的支持才行。

前面说过,App Clip的启动需要由invocation来触发,invocation包括如下场景:

  • 通过NFC扫描来唤起
  • 通过点击Sari提供的基于地理位置的推荐
  • 在地图App上点击指定的链接
  • 点击网页上的智能推荐横幅
  • 通过Messages App分享的链接

需要注意的是,App Clips 的入口除了上述六种方式,那些被打开过的 App Clips 还会出现在 App 资源库的“最近添加”文件夹中,而且图标会围有一圈虚线来和正式 App 做出区分。

唤起一个App Clip的过程如下图所示(来自Apple官方文档)


appclips打开流程.jpeg

如上图,当某个invocation触发了App Clip时,系统首先会检查invocation关联的URL,通过URL获取用来展示预览信息的数据,预览信息包括一个背景图案,描述标题与启动按钮,用户点击启动按钮后会打开App Clip。我们可以在App Clip启动时拿到传递进来的URL,通过URL的参数进行不同的逻辑处理。

了解了App Clips的启动过程,我们知道实际上在启动App Clip之前,系统会先弹出一个预览卡片,这个卡片上的信息可以由开发者在iTunes Connect上自行定义。

前面说过,App Clip的运行需要invocation进行调用,对于invocation的调用,如果用户安装了完全的主App,则会唤起主App来处理用户任务,如果用户没有安装主App,则自动调起App Clip。无论通过哪种invocation来调起App Clip,我们都需要在App Clip的target中配置指定的域权限。在target工程的设置页面,找到Associated Domains选项,在其中添加要调起App Clip的域名,需要找到这样的格式:appclips:xxx.com。这种配置方式与Deep link的逻辑基本一致。

image

下面两个截图分别对应oc和swiftUI的appclips开发,可以发现两个target对应的初始化代码基本上是一样的,因此在开发App Clips时,我们应该尽量的让主App的代码与App Clips需要使用的代码共享,共享代码非常容易,将可以共享的代码保证在静态库或动态库内即可。

object-c.png
swiftui.png

唤醒 App Clip

开发完 App Clip 后,我们可以点击 Smart app Banner,扫码二维码或 NFC 标签,点击 Siri 获取基于位置的建议,短信等方式来唤醒(invacation) App Clip。

在 AppClip 可以被唤醒之前需要配置 Launch Experience,即给 App Clip 配置一个 URL 和 App Clip Card 信息。在开发阶段可以直接配置 Local Experience 或者在 testflight 上进行配置。App Clip 准备发布时,需要在 app store connect 上进行配置。

本文主要介绍 Local Experience 方式,其他方式可参考苹果开发文档。

1.首先将 SugarClip 通过 Xcode 在手机运行起来。

2.打开手机【设置】-【开发者】-【Local Experience】-【Register Local Experience】。

42a98226cffc1e17c1e001a7e2dca004728de999.png

填入URL PREFIX,打开任何以 URL PREFIX 为前缀的 URL,都会被当做打开 App Clip 来处理。填入 Clip Bundle Id。填入 Title、Subtitle,选择一张图片,这些信息将会显示在 App Clip Card 上。3. 步骤2 的 URL PREFIX 编码成一个二维码(https://www.qr-code-generator.com/

4. 使用控制面板的二维码扫描器扫描,将会弹出 App Clip Card。

0df3d7ca7bcb0a465d9933c7da2fa0236a60af6d.png

5. 点击查看,进入 App Clip

00e93901213fb80e566c020a939d7929b8389405.png

配置预览卡片

在真正的启动App Clip之前,首先会弹出预览卡片。在提交App Clip时,是跟宿主App一起打包上传到App Store Connect上的,App Clip的预览卡片配置也是在App Store Connect上完成,提供给开发者自由配置的地方并不多,包括3个方面:

  • 配置一个头图
  • 配置副标题并提供描述文案
  • 配置交互按钮

关于数据共享

App Clips的和宿主App的数据共享并没有什么特殊的地方,其和普通Extension Target与宿主App通信的方式一样,只要创建一个App Group,并将App Clips与宿主App放入同一个App Group中,之后就可以通过NSUserDefault来进行数据的共享。

完善的地方

但 App Clips 目前也存在不少影响体验的问题,由于苹果限制了 App Clips 在后台运行的权限,所以无法常驻后台,例如这一次体验的博客 App Clips 在切回主屏幕之后,音频会自动停止播放。
此外,App Clips 的入口也是一个问题,没有和微信小程序一样有一个固定的入口(App 资源库的最近添加并不算一个稳定的入口),无论是学习成本还是使用门槛都很高。
在 App Clips 的宣传视频中,苹果设想了一个被 App Clips 覆盖的全生活线下场景,我认为这也是 App Clips 最应该发力的主赛道。

作为 App 的一部分,App Clips 的特点是其能够更加专注在特定的任务上,例如公共自行车扫码出行,通过 NFC 或者二维码扫描打开相应的 App Cips 就可完成用车、付款、还车等操作;又如线下消费,扫描商户提供的 App Clips,就可浏览店内的数字促销信息,快速完成下单、付款、配送。

当然以上设想的场景不是单靠苹果就能够完成的,整个流程需要用户、开发者、厂商共同推动,任何一款的缺失都可能导致整个设想的流产。

https://my.oschina.net/u/2340880/blog/4332631

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,839评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,543评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,116评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,371评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,384评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,111评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,416评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,053评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,558评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,007评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,117评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,756评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,324评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,315评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,539评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,578评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,877评论 2 345

推荐阅读更多精彩内容