0

我创建了包含 UI 的 siri 扩展,因为通过 url 方案打开我的应用程序的方式仅适用于 UI 扩展,但不适用于 siri 扩展。像这样:

func configure(with interaction: INInteraction!, context: INUIHostedViewContext, completion: ((CGSize) -> Void)!) {
    // Do configuration here, including preparing views and calculating a desired size for presentation.
    let finIntent = interaction.intent as? INSendMessageIntent
    if finIntent?.content != nil{
        open(scheme: "fin://ju/"+(finIntent?.content)!)
    }
    else{
        open(scheme: "fin://ju/open")
    }

    if let completion = completion {
        completion(self.desiredSize)
    }
}
func open(scheme: String) {
    if let url = URL(string: scheme) {
        if #available(iOS 10, *) {
            UIApplication.shared.open(url, options: [:],
                                      completionHandler: {
                                        (success) in
                                        print("Open \(scheme): \(success)")
            })
        } else {
            let success = UIApplication.shared.openURL(url)
        }
    }
}

它可以工作,但是下次打开 siri 时,它将自动加载扩展 UI 并再次调用此配置方法,因此将再次打开我的应用程序而无需参数。我想这可能是因为 UI 扩展没有得到用户操作,所以我需要在以编程方式打开我的应用程序后关闭它。但有人知道怎么做吗?谢谢 !

4

0 回答 0