问题描述
我正在开发一个AppClip,它可以检测用户的实际位置以显示该应用程序剪辑。苹果提到了一段代码here:
func location(from url:URL) -> CLRegion? {
let coordinates = CLLocationCoordinate2D(latitude: 37.334722,longitude: 122.008889)
return CLCircularRegion(center: coordinates,radius: 100,identifier: "Apple Park")
}
我的问题是,由于我的应用需要几个博物馆的位置才能显示AppClip,是否可以添加多个位置?
解决方法
是的,您可以有多个位置,每个位置都有一个单独的应用程序剪辑URL。实际上,此示例代码并未从应用剪辑的URL中提取任何信息,因为这是与应用高度相关的。
在现实世界中,您会遇到类似的情况
https://example.com/appclip/location/42
作为您的应用剪辑网址,每个位置都有不同的ID。
然后,您的代码将需要找出位置ID为42的坐标,并使用这些坐标来检查用户的当前位置
,需要了解的基本知识-应用程序剪辑完全不依赖于位置服务。
不仅如此-App Clip无法访问设备位置。 App Clip不能问“我在哪里?”。
应用程序剪辑可以询问“我在这个位置吗?” -只是要确保确实在波士顿扫描了波士顿分公司的QR码。
体验不是由位置触发的-体验的唯一位置基础是在Apple Maps中设置的位置。由于您可以为客户在Apple Maps中分散位置,因此他们的所有体验都会显示出来。
您引用的代码是如何定义App Clip询问“我在这个半径范围内”的半径吗?
例如,如果为每个博物馆定义单独的QR码:
https://museums.com/nyc/123
https://museums.com/london/356
https://museums.com/paris/789
您应该使用URL来理解应该在引用的代码中定义的半径。