iOS14 App Clips

作者: 温柔vs先生 | 来源:发表于2020-07-14 15:29 被阅读0次

    关于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包括如下5中场景:

    • 通过NFC扫描来唤起
    • 通过点击Sari提供的基于地理位置的推荐
    • 在地图App上点击指定的链接
    • 点击网页上的智能推荐横幅
    • 通过Messages 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来进行数据的共享。

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

    相关文章

      网友评论

        本文标题:iOS14 App Clips

        本文链接:https://www.haomeiwen.com/subject/ivaoqktx.html