NSUserActivity

5244 ワード

https://developer.apple.com/documentation/foundation/nsuseractivity
"A representation of the state of your app at a moment in time."
特定の時点におけるアプリケーションのステータスを表示します.

Declaration

class NSUserActivity : NSObject

Overview

NSUserActivityオブジェクトは、アプリケーションのステータスを簡単にキャプチャし、後で使用できるようにします.このオブジェクトを作成して、アプリケーションの内容の表示、ドキュメントの編集、Webページの表示、ビデオの表示など、実行中の操作に関する情報を取得します.システムがアプリケーションを起動するときにこのオブジェクトが使用可能である場合、アプリケーションは使用するオブジェクトの情報を適切な状態に復元します.このオブジェクトを使用すると、ユーザーの検索結果が逆方向に向上します.他のデバイスが操作を続行できるようにするには、アプリケーションのImplementing Handoffを確認します.
https://developer.apple.com/documentation/foundation/task_management/implementing_handoff_in_your_app
https://velog.io/@panther222128/Implementing-Handoff-in-Your-App

Siri


何らかの理由でアプリケーションを起動する必要がある場合は、ユーザー・アクティブ・オブジェクトを作成し、インタラクティブ・プロパティに適切なSiriKitオブジェクトを割り当てます.アプリケーションは、インタラクション情報を使用してカスタマイズし、INInteractionによって開始されたインタラクションに関連する情報を表示することができる.また、アプリケーションに渡す他のデータを含むカスタムユーザアクティビティオブジェクトSiriKitを提供することもできます.
iOS 15以降では、Siriに「thisの共有」を要求することで、表示されたコンテンツを共有できます.Mac Catalystを使用して設計されたアプリケーションは、ツールバーのSiriKitで同じ機能を提供します.また、NSSharingServicePickerToolbarItemまたはactivityItemsConfigurationを使用して、共有可能なコンテンツを提供することもできます.上記の2つのプロパティがiOS上でactivityItemsConfigurationSourceである場合、システムはアプリケーションの現在のユーザー・アクティビティのnilプロパティを代替値として使用します.

Quick Note


MacOSとiOSのQuick Noteは、webpageURLと表示されているすべてのアプリケーションコンテンツを接続できます.リンクとして表示するには、アプリケーションの現在のアクティビティであり、少なくとも次のいずれかのID Fireを指定する必要があります.
webpageURL
http:URLは、ユーザーが同じコンテンツに入るたびに統一された標準フォーマットを採用します.
persistentIdentifier
このドメインのコンテンツを表示する文字列.このID Fireは、複数のデバイスにわたって同じ内容を表示する必要があります.
targetContentIdentifier
このドメインの内容を確認する文字列.また、アプリケーション内の複数のシーンを明確に区別できます.アイデンティティーFireは、複数のデバイスにわたって同じ内容を表示する必要があります.
クイック注釈が正常に動作していることを確認するには、次のガイドラインに従う必要があります.
  • 活動タイトルは簡潔明瞭でなければならない.このテキストには、「Photo taken July 272020」または「MariaとのConversation with Maria」などのリンクの内容が記載されています.アクティブなタイトルに名前を使用してください.
  • NSUserActivitybecomeCurrent()は、アプリケーションの現在のアクティビティが最新の状態であることを保証します.
  • 接続可能なエンティティFire(前述したように)は、同じコンテンツに対して安定した一貫性を保たなければならない.アプリケーション内のドキュメントにメモをリンクし、ドキュメントを再接続しようとすると、ドキュメントに再接続するインジケータが表示されます.エンティティファイルを比較して、リンク内の既存のソースと同じかどうかを比較します.
  • appleのアクティビティのサポート、およびそれに関連するコンテンツの閲覧のサポート.ノードに追加されたリンクは、切断されたリンクがデータの損失を示すと考えているユーザーにとって重要です.
  • コンテンツが存在しないアクティビティに移動しようとする試行を正常に処理する必要があります.たとえば、移動コンテンツの新しい場所に再接続したり、エラーメッセージを表示したりできます.共有ノードは、ユーザが他のユーザ装置のみに存在するコンテンツに接続しようとすると、このようなことが起こる.
  • Search Results


    次に検索する情報を含むresignCurrent()オブジェクトについては、NSUserActivityプロパティをisEligibleForSearchに設定します.検索が許可されている場合、Spotlightはユーザー・アクティビティ・オブジェクトにインデックスを作成し、その後のデバイスで検索するときにユーザー・アクティビティ・オブジェクトを考慮します.たとえば、アプリケーションでレストランに関する情報が表示された場合、対応するユーザー・アクティビティ・オブジェクトの検索をサポートできます.Spotlightを使用したレストランの後続検索には、ユーザー・アクティビティ・オブジェクトから取得した結果が含まれる場合があります.
    アプライアンスでの検索に加えて、グローバルSpotlight検索エンジンを使用してアプリケーションにアクセスするURLを提供することもできます.共有URLを使用すると、Spotlightがユーザーの検索結果を改善できます.URLを指定するには、アクティブオブジェクトのプロパティtrueにURLを入力し、webpageURLプロパティをisEligibleForPublicIndexingに設定する必要があります.
    Important
    検索結果を使用するには、すべてのアクティブなオブジェクトへの強い参照を保持する必要があります.
    アプリケーション・データの汎用インデックス・メカニズムではなく、ユーザー・アクティビティ・オブジェクトを使用して、ユーザーからの初期化アクティビティを記録する必要があります.アプリケーション内のすべてのコンテンツ、およびユーザーが接触しているコンテンツをインデックスするには、trueフレームワークのAPIを使用します.

    Topics


    Creating a User Activity Object


    Creating a User Activity Object


    キー・ユーザーのインタラクションを表示および後でリカバリするための情報が含まれます.
    https://developer.apple.com/documentation/foundation/nsuseractivity/creating_a_user_activity_object
    https://velog.io/@panther222128/Creating-a-User-Activity-Object

    See Also


    Activity Sharing


    Implementing Handoff in Your App


    ユーザー・アクティビティを直接作成、送信、受信します.
    https://developer.apple.com/documentation/foundation/task_management/implementing_handoff_in_your_app
    https://velog.io/@panther222128/Implementing-Handoff-in-Your-App