概述
iOS 14提供的App Clip方案,帮助用户在没有安装App的情况下,快速下载App Clip包,完成某个流程的功能。App Clip展现方式有QR Code,NFC Tag,Safari Banner,Siri Suggestion,iMessage和Apple Map。
开发
- 工程里新建Target选择 App Clip
-
增加Associated Domains
- App Clip和App增加处理代码
func scene(_ scene: UIScene, continue userActivity: NSUserActivity) {
if userActivity.activityType == NSUserActivityTypeBrowsingWeb,
let incomingURL = userActivity.webpageURL,
let components = NSURLComponents(url: incomingURL, resolvingAgainstBaseURL: true) {
}
}
- App Clip不同于Extension,可以使用除隐私相关(HealthKit)的大部分API
- 用户一旦安装App,由App响应App Clip的调用
- 与App一起提交
通知
-
InfoPlist增加NSAppClipRequestEphemeralUserNotification
2.通知权限有效时长8小时,检测代码
let center = UNUserNotificationCenter()
center.getNotificationSettings { settings in
if settings.authorizationStatus == .ephemeral {
//User has already granted ephemeral notification
}
}
定位
-
InfoPlist增加NSAppClipRequestLocationConfirmation
-
只能申请使用App时间权限,有效时间一天
数据
- App Clip的数据保存在临时缓存里,数据可能会被清除,如果用户经常使用该App Clip,系统不会清除数据
- 使用App Group Container保存数据,在用户安装App后读取,保持使用流程的顺畅
let secureAppGroupURL = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier:"group.com.example.fruta")
权限转移
用户安装App后,使用App Clip获得的相机、蓝牙、麦克风权限App会自动获得。
TestFlight
-
提交到TestFlight进行测试
App Clip Meta Data
-
App提交到App Store Connect后配置App Clip信息
-
指定App Clip Card的信息,规则如下
Action可以配置Action,Open,View,Play
-
App Clip URL,一个App Clip可以配置多个URL
这里配置的URL,按照最大可匹配前缀规则匹配,不必填写完整的后缀路径及参数,如图所示