如何将 AppClip 添加到 Siri 的附近建议?

Posted

技术标签:

【中文标题】如何将 AppClip 添加到 Siri 的附近建议?【英文标题】:How to add AppClip to Siri's Nearby Suggestions? 【发布时间】:2020-06-24 15:51:01 【问题描述】:

在视频Configure and link your app clipsApple 中显示,Siri 可以根据用户的位置建议您的 AppClip。

我在文档 https://developer.apple.com/documentation/app_clips 中找不到这个

这纯粹是基于其他用户使用此应用的位置,还是开发人员可以配置(可能基于地理编码区域)?

【问题讨论】:

看看 App Clip 会话 developer.apple.com/news/?id=dsd023qd 这张图片取自那个视频,视频中没有说明如何设置,否则我不会在这里问问题???? 【参考方案1】:

据我在 WWDC 采访过的一位 Apple App Clips 工程师所说,为了将您的 App Clip 发布到 Apple Maps 上,您需要在 Apple 注册一家注册公司。这可以从 ios 10 开始,通过Apple Maps Connect 注册为小型企业。

“附近的 Siri”建议基于位置数据,仅当您的 App Clip 与 Apple 地图上的位置卡相关联时才会出现,因此您无法对此进行控制。下载 App Clips 后绝对有可能获取用户位置,如下面的demo 所示,但根据您的问题,我推测您想在下载之前提出 App Clip 建议(不在开发人员的控制范围内)。

如果您想将 App Clip 注册到某个位置,您需要等到 App Clip 完全可用并可在 App Store 上发布。当今年晚些时候 TestFlight 和 App Store Connect 获得对应用程序剪辑的支持时,您将能够从 NFC、二维码、地图等调用应用程序剪辑。因此,您需要在 Apple 注册您的业务,在 Apple Maps 中注册您的地点卡,然后启用 App Clips 以获取建议。

【讨论】:

【参考方案2】:

有一个示例代码文档页面,代码中有 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

代码 sn-p 来自上面链接中的文档。

【讨论】:

当用户扫描标签并调用 handleUserActivity 时打开 AppClip 时运行此代码。在这种情况下,它使用位置来确定是否应该启用 Apple Pay。因此,此代码在已安装 AppClip 时运行。我正在寻找能够在安装之前在 Siri 建议中显示 AppClip 的代码!【参考方案3】:

文档尚未详细说明,但您可以在此处阅读: 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 中提供,并且通过此设置,Siri 建议应该能够根据用户位置选择您的应用剪辑

【讨论】:

以上是关于如何将 AppClip 添加到 Siri 的附近建议?的主要内容,如果未能解决你的问题,请参考以下文章

Apple Watch 中的 Siri 快捷方式集成

如何在Mac上使用Siri

如何让你的 App Clip 拥有好的用户体验

如何将 Siri 授权状态重置为未确定?

如何调试我的 Siri (Intents) 扩展?

iOS 14 降级到 iOS 13:教程+注意事项