知晓程序|开发|刚上线的苹果「小程序」得这么做

在2020年6月23日的WWDC大会中 , 苹果预告了AppClips 。
AppClip(官方翻译:轻App;民间翻译:「苹果」小程序) , 是主app轻量级的版本 , 旨在在特定场景为用户提供快速便捷的体验 。
如果你在上班路上经过一家咖啡店想购买一杯咖啡 , 但发现排队下单付款的人很多 , 此刻你只需要使用iPhone自带的扫码工具扫描咖啡商店的AppClip二维码或NFC标签 , 就可以购买一杯咖啡 , 无需下载安装咖啡商店的app 。
知晓程序|开发|刚上线的苹果「小程序」得这么做
文章图片
图片来源:苹果官网
这应用场景听起来是不是跟微信小程序很像?
是的 , 于是我们在AppClips发布后就立刻进行了AppClips和微信小程序的对比和实操 。
我们发现 , AppClips和微信小程序的存在都是为了解决同一个问题 。 但就开发而言 , AppClips和微信小程序亦存在着方向上的差异 。
微信小程序是0到0.1再到1.0 。 开发者为提供一个服务 , 从头开始开发小程序 , 用户用完即走 , 体验很棒 。 AppClips则是从1.0到0.1 , 是对现有app的一种改良 , 因此在开发上遇到的麻烦反而会少一些 。
下面 , 我们就针对AppClip几个重要特性进行详细说明 , 并以AppClipdemo为例 , 讲一讲开发的那些事 。 无论你是基于实际业务需要 , 或者学习、探索新事物的需求 , 只要具备一定的开发基础 , 通过本教程 , 也能轻松搞定一个AppClip 。
AppClip的技术限制
AppClip仅限应用于特定场景 , 即尽可能快地完成一个任务 , 即用即走 。 你可以把它看作主app的核心功能应用 , 对于复杂的任务应该在其对应的主app完成 , 因此某些功能被禁止在AppClip中使用 。
安装包大小10M以内
当弹出AppClipCard时会立即下载AppClip , 安装包大小的限制保证了用户体验——当用户打开AppClip时大概率已经下载好 。
不能使用指定Framework
AssetsLibrary,CallKit,CareKit,CloudKit,Contacts,ContactsUI,CoreMotion,FileProvider,FileProviderUI,HealthKit,HomeKit,Media,Player,Messages,MessageUI,PhotoKit,ResearchKit,SensorKit,Speech
以上Framework不能在AppClip使用 , 若使用了在编译时不会报错 , 而是在运行时报错或者返回错误的结果 。
与用户隐私相关操作
1.
不能跟踪用户信息 , 也不能通过identifierForVendor来获取用户唯一标识 。
2.
不能持续地获取用户位置 , 每次使用位置需要请求用户授权 , 次日凌晨4:00 , 会自动关闭授权 。 再次使用位置时 , 需要用户重新授权 。
3.
只允许AppClip和其对应的主app通信 , 不允许和其他app进行通信 , 这就导致微信登录分享支付等功能在AppClip里使用不了 。
4.
不能访问苹果音乐、多媒体 , 通讯录 , 文件 , 运动健康 , 相册等数据 。
其他复杂任务
1.
后台活动:网络请求、位置更新等
2.
蓝牙连接
3.
Appextensions
4.
URLschemes
5.
内购(In-apppurchases)(区别苹果支付ApplePay , 在AppClip是能够使用苹果支付的)
AppClips的消息推送
微信小程序不能通过Push的方式触达用户曾让开发者忧心忡忡 。 而手机厂商推出的系统级应用在这方便可以给开发者更多的底气 , 不管是苹果的AppClips还是国产手机生态的快应用 , 服务的消息推送能力都是吸引开发者的重要能力 。
【知晓程序|开发|刚上线的苹果「小程序」得这么做】消息推送在AppClip的应用分两种场景:短时间内推送和长时间内的推送 。 (官方文档:https://developer.apple.com/documentation/app_clips/enabling_notifications_in_app_clips)
短时间内推送
用户在启动AppClip后 , 8小时内可以收到消息推送 。 比如用户在AppClip购买了一杯咖啡后就退出了AppClip , 当咖啡准备好了 , 用户就会收到一个「咖啡已准备好」的推送 。 这方式只需要在Info.plist属性文件中添加NSAppClipKey , 并将NSAppClipRequestEphemeralUserNotification设置为true , 就能默认获取消息推送的权限 。