ドネートした情報をSiriから削除します。
概要
Appがドネートしたショートカットに含まれる情報を、後にユーザーが削除した場合は、そのドネートした情報を削除する必要があります。たとえば、ユーザーがメッセージAppを使ってある連絡先にメッセージを送信したとします。Appは、その連絡先の情報を含む「メッセージを送信」というショートカットをドネートしました。その後、ユーザーはAppからこの連絡先を削除しました。この場合Appは、この連絡先情報を含めてドネートした情報を削除する必要があります。
ユーザーは、Appからデータを削除したら、そのデータは完全になくなるものだと考えます。これは、Appからデータを削除するだけでなく、システムがそのデータを持っているならシステムからもデータを削除することを意味します。プライバシーと信頼を常に保つために、Appは、このユーザーとの暗黙の合意を尊重することが重要です。
また、Appでそのアクションをサポートしなくなった場合なども、Appがドネートした情報を削除しなければなりません。一般に、ユーザーに適したものでなくなった場合はいつでも、ドネートを削除する必要があります。
インタラクションのドネートを削除する
インタラクションオブジェクトを使用してドネートした情報を削除するには、delete
クラスメソッドのいずれかをINInteraction
(英語)に適用します(システムからのインタラクションの削除(英語)を参照)。特定のドネートを削除するには、delete(with:
(英語)を使用し、削除する各インタラクションについてidentifier
(英語)文字列のリストを渡します。または、delete(with:
(英語)を使用し、2つ以上のインタラクションのグループに使用されるgroup
(英語)文字列を渡します。
ユーザーがAppからサインアウトした場合など、Appがドネートしたすべてのインタラクションを削除する必要がある場合は、delete
(英語)を使用します。
ユーザーアクティビティのドネートを削除する
NSUser
(英語)を使用してドネートした情報を削除する方法は、ユーザーアクティビティをどう設定したかによって異なります。
持続アクティビティ
ユーザーのアクティビティのis
(英語)プロパティがtrue
(英語)に設定されており、persistent
(英語)プロパティにアクティビティを特定する一意の文字列が設定されている場合、以下のように対応します。
-
個々のアクティビティを削除するには、
delete
(英語)を使用し、永続的識別子のリストを渡します。この方法により、同じ永続的識別子を持つ、Core Spotlightで保存されているユーザーアクティビティも削除されます。Saved User Activities(with Persistent Identifiers: completion Handler:) -
ユーザーがAppからサインアウトした場合など、Appに保存されているすべてのアクティビティを削除するには、
delete
(英語)を使用します。この方法により、Appで作成されCore Spotlightによって保存されているすべてのユーザーアクティビティも削除されます。All Saved User Activities(completion Handler:)
Spotlightでインデックス化されたアクティビティ
ユーザーアクティビティがSpotlightでインデックス化され、related
(英語)プロパティが、アクティビティを識別する一意の文字列に設定されている場合
-
特定のSpotlight項目を削除するには、
delete
(英語)を使用します。Searchable Items(with Identifiers: completion Handler:) -
ドメイン識別子によってグループ化されたSpotlight項目を削除するには、
delete
(英語)を使用します。Searchable Items(with Domain Identifiers: completion Handler:) -
AppがSpotlightに提供したすべての検索可能項目をインデックスから削除するには、
delete
(英語)を使用します。All Searchable Items(completion Handler:)
Spotlightアイテムを削除すると、システムによって、関連するユーザーアクティビティおよびドネートが削除されます。
Spotlightインデックスについて詳しくは、Core Spotlight(英語)を参照してください。