Suche…


Einführung

Ein NSUserActivity-Objekt kann verwendet werden, um wichtige Ereignisse in einer App mit dem System zu koordinieren. Es ist die Basis für die Übergabe zwischen verschiedenen Geräten, auf denen iOS und macOS ausgeführt wird. Darüber hinaus kann es auch verwendet werden, um die öffentliche Indexierung zu verbessern und Spotlight Search-Ergebnisse für eine App zu erweitern oder zu erstellen. Ab iOS 10 kann es auch verwendet werden, um Interaktionen zwischen Ihrer App und Siri mithilfe von SiriKit zu koordinieren.

Bemerkungen

Aktivitätsarten

Unterstützte Aktivitätstypen müssen in der Info.plist Datei Ihrer App unter dem Schlüssel NSUserActivityTypes . Aktivitäten sind an Ihre Entwicklerteam-ID gebunden. Dies bedeutet, dass die Aktivitätskoordination zwischen Apps mit derselben Team-ID eingeschränkt ist (z. B. "Safari" konnte keine Handoff-Aktivität von "Chrome" akzeptieren oder umgekehrt).

Aktive Aktivität einstellen / kündigen

Durch das Markieren einer Aktivität als aktuelle Aktivität wird die becomeCurrent für Handoff- oder Spotlight-Indizierung verfügbar. Es kann jeweils nur eine Aktivität aktuell sein. Sie können eine Aktivität als inaktiv markieren, ohne sie ungültig zu machen, indem Sie resignCurrent aufrufen.

Wenn Sie eine Aktivität für invalidate , wird dieselbe Instanz möglicherweise nicht mehr aktuell gemacht.

Kennzeichnen Sie eine Aktivität nicht als aktuell, wenn Sie sie für SiriKit bereitstellen .

Suchindizierung

Aktivitäten dürfen nicht als allgemeiner Indexierungsmechanismus in Ihrer App verwendet werden. Sie sollten stattdessen nur als Antwort auf vom Benutzer initiierte Aktionen verwendet werden. Verwenden Sie CoreSpotlight, um alle Inhalte in Ihrer App zu indizieren.

NSUserActivity erstellen

Um ein NSUserActivity Objekt erstellen zu NSUserActivity , muss Ihre App die unterstützten Aktivitätenarten in ihrer Info.plist Datei Info.plist . Unterstützte Aktivitäten werden von Ihrer Anwendung definiert und sollten eindeutig sein. Eine Aktivität wird unter Verwendung eines Namensschemas für eine umgekehrte Domäne definiert (z. B. "com.companyName.productName.activityName"). So könnte ein Eintrag in Ihrer Info.plist aussehen:

Schlüssel Wert
NSUserActivityTypes [Array]
- item0 com.companyName.productName.activityName01
- Gegenstand 1 com.companyName.productName.activityName02

Nachdem Sie alle unterstützten Aktivitätstypen definiert haben, können Sie damit beginnen, auf diese zuzugreifen und sie im Code Ihrer Anwendung zu verwenden.

Um ein NSUserActivity Objekt zu erstellen, müssen Sie folgende NSUserActivity

// Initialize the activity object and set its type from one of the ones specified in your app's plist
NSUserActivity *currentActivity = [[NSUserActivity alloc] initWithActivityType:@"com.companyName.productName.activityName01"];

// Set the title of the activity.
// This title may be displayed to the user, so make sure it is localized and human-readable
currentActivity.title = @"Current Activity";

// Configure additional properties like userInfo which will be included in the activity
currentActivity.userInfo = @{@"informationKey" : @"value"};

// Configure the activity so the system knows what may be done with it
// It is important that you only set YES to tasks that your application supports
// In this example, we will only enable the activity for use with Handoff
[currentActivity setEligibleForHandoff:YES];
[currentActivity setEligibleForSearch:NO]; // Defaults to NO
[currentActivity setEligibleForPublicIndexing:NO]; // Defaults to NO

// Set this activity as the current user activity
// Only one activity may be current at a time on a device. Calling this method invalidates any other current activities.
[currentActivity becomeCurrent];

Danach sollte die oben genannte Aktivität für Handoff verfügbar sein (obwohl mehr Arbeit erforderlich ist, um die "Handoff" richtig abzuwickeln).



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow