📑

AppIntentsでインテントを実行する前にユーザーに尋ねる

2024/07/07に公開

requestConfirmation()とは

この関数を使うとPerform()を実行する前にDialogなどを出してユーザーに尋ねることができる。
https://developer.apple.com/documentation/appintents/appintent/requestconfirmation()

以下のビデオで例として紹介されていていたのは、本を買うというインテントの途中で値段や本の情報のView,Dialogとともに、注文するかを決定するボタンを表示するものだった。(26:23)
購入の処理をPerformする前にユーザーへの確認を挟むなど、ワンクッション置きたい時に便利な関数。

https://developer.apple.com/jp/videos/play/wwdc2022/10032

コードの内容

iOS18からはrequestConfirmation(conditions:actionName:dialog:)の形で書く必要がある。

try await requestConfirmation(conditions: [], actionName: .`continue`, dialog: "Do you want to save this image?")

conditions

actionName

アクションの名前を選択する。この名前がボタンに表示もされる。名前はStringで自由に決められるのではなく、ConfirmationActionNameというテンプレートのようなものの中から選ぶ。
https://developer.apple.com/documentation/appintents/confirmationactionname

dialog

表示、読み上げられる文章を指定する。

Discussion