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