Zoeken…


Invoering

Een NSUserActivity-object kan worden gebruikt om belangrijke gebeurtenissen in een app met het systeem te coördineren. Het is de basis voor Handoff tussen verschillende apparaten met iOS en macOS. Bovendien kan het ook worden gebruikt om openbare indexering te verbeteren en Spotlight-zoekresultaten voor een app te verbeteren of te maken. Vanaf iOS 10 kan het ook worden gebruikt om interacties tussen uw app en Siri te coördineren met SiriKit.

Opmerkingen

Activiteitstypen

Ondersteunde activiteitstypen moeten worden gedefinieerd in het Info.plist bestand van uw app onder de sleutel NSUserActivityTypes . Activiteiten zijn gekoppeld aan uw ontwikkelaarsteam-ID, wat betekent dat activiteitscoördinatie beperkt is tussen apps die dezelfde Team-ID hebben (bijv. "Safari" kan een overdracht-activiteit van "Chrome" niet accepteren of vice versa).

De huidige activiteit worden / ontslag nemen

Als u een activiteit als huidig becomeCurrent met behulp van becomeCurrent is deze beschikbaar voor Handoff of Spotlight Indexing. Er kan slechts één activiteit tegelijk actief zijn. U kunt een activiteit als inactief markeren zonder ongeldig te maken door resignCurrent bellen.

Als u een activiteit invalidate , wordt hetzelfde exemplaar mogelijk niet meer actueel gemaakt.

Markeer een activiteit niet als actueel wanneer deze wordt aangeboden voor SiriKit .

Search Indexing

Activiteiten mogen niet worden gebruikt als algemeen indexeringsmechanisme in uw app. In plaats daarvan mogen ze alleen worden gebruikt als reactie op door de gebruiker geïnitieerde acties. Gebruik CoreSpotlight om alle inhoud in uw app te indexeren.

Een NSUserActivity maken

Om een NSUserActivity object te maken, moet uw app de soorten activiteiten aangeven die het ondersteunt in het Info.plist bestand. Ondersteunde activiteiten worden gedefinieerd door uw toepassing en moeten uniek zijn. Een activiteit wordt gedefinieerd met behulp van een naamgevingsschema voor de omgekeerde domeinstijl (dat wil zeggen "com.companyName.productName.activityName"). Dit is hoe een item in uw Info.plist eruit zou kunnen zien:

Sleutel Waarde
NSUserActivityTypes [Array]
- item0 com.companyName.productName.activityName01
- item 1 com.companyName.productName.activityName02

Nadat u alle ondersteunde activiteitstypen hebt gedefinieerd, kunt u deze gaan gebruiken en gebruiken in de code van uw toepassing.

Om een NSUserActivity object te maken, moet u het volgende doen

// 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];

Hierna moet de bovenstaande activiteit beschikbaar zijn voor Handoff (hoewel meer werk vereist is om de "Handoff" correct af te handelen).



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow