在视频中配置和链接您的应用剪辑Apple 展示了 Siri 可以根据用户的位置建议您的 AppClip。
我在文档中找不到这个https://developer.apple.com/documentation/app_clips
这纯粹是基于其他用户使用这个应用程序的位置,还是开发人员可以配置的东西(可能基于地理编码区域)?
在视频中配置和链接您的应用剪辑Apple 展示了 Siri 可以根据用户的位置建议您的 AppClip。
我在文档中找不到这个https://developer.apple.com/documentation/app_clips
这纯粹是基于其他用户使用这个应用程序的位置,还是开发人员可以配置的东西(可能基于地理编码区域)?
据我在 WWDC 采访过的一位 Apple App Clips 工程师说,为了将您的 App Clip 发布到 Apple Maps 上,您需要在 Apple 注册一家注册公司。这可以从 iOS 10 开始,通过Apple Maps Connect并注册为小型企业。
Nearby Siri 建议基于位置数据,仅当您的 App Clip 与 Apple 地图上的位置卡相关联时才会出现,因此您无法对此进行控制。下载 App Clips 后绝对可以获取用户位置,如下面的演示所示,但根据您的问题,我推测您想在下载之前提出 App Clip 建议(不在开发人员的控制范围内)。
如果您想将 App Clip 注册到某个位置,您需要等到 App Clip 完全可用并可在 App Store 上发布。当今年晚些时候 TestFlight 和 App Store Connect 获得对应用程序剪辑的支持时,您将能够从 NFC、二维码、地图等调用应用程序剪辑。因此,您需要在 Apple 注册您的业务,在 Apple Maps 中注册您的位置卡,然后启用 App Clips 以获取建议。
该文档尚未详细说明,但您可以在此处阅读: https ://developer.apple.com/documentation/app_clips
在这里https://developer.apple.com/documentation/app_clips/configuring_your_app_clip_s_launch_experience
在“查看高级应用剪辑体验”下
您应该能够将您的 App Clip 与 AppStore Connect 中提供的物理位置相关联
代码中有一个示例代码文档页面,其中包含 Widgets 和 App Clip:https ://developer.apple.com/documentation/swiftui/fruta_building_a_feature-rich_app_with_swiftui
在 App Clip 代码部分的上述链接中,有一个有效载荷,其纬度和经度可配置。Siri 应该会根据您在纬度和经度中输入的位置自动推荐 App Clip。
#if APPCLIP
func handleUserActivity(_ userActivity: NSUserActivity) {
guard let incomingURL = userActivity.webpageURL,
let components = NSURLComponents(url: incomingURL, resolvingAgainstBaseURL: true),
let queryItems = components.queryItems else {
return
}
if let smoothieID = queryItems.first(where: { $0.name == "smoothie" })?.value {
model.selectSmoothie(id: smoothieID)
}
guard let payload = userActivity.appClipActivationPayload,
let latitudeValue = queryItems.first(where: { $0.name == "latitude" })?.value,
let longitudeValue = queryItems.first(where: { $0.name == "longitude" })?.value,
let latitude = Double(latitudeValue), let longitude = Double(longitudeValue) else {
return
}
let region = CLCircularRegion(center: CLLocationCoordinate2D(latitude: latitude,
longitude: longitude), radius: 100, identifier: "smoothie_location")
payload.confirmAcquired(in: region) { inRegion, error in
if let error = error {
print(error.localizedDescription)
return
}
DispatchQueue.main.async {
model.applePayAllowed = inRegion
}
}
}
#endif
代码片段来自上面链接的文档。