Ricerca…


introduzione

Un oggetto NSUserActivity può essere utilizzato per coordinare eventi significativi in ​​un'app con il sistema. È la base per Handoff tra diversi dispositivi che eseguono iOS e macOS. Inoltre, può anche essere utilizzato per migliorare l'indicizzazione pubblica e aumentare o creare risultati di ricerca Spotlight per un'app. A partire da iOS 10, può anche essere usato per coordinare le interazioni tra la tua app e Siri utilizzando SiriKit.

Osservazioni

Tipi di attività

I tipi di attività supportati devono essere definiti nel file Info.plist dell'app sotto la chiave NSUserActivityTypes . Le attività sono legate all'ID del tuo sviluppatore, il che significa che il coordinamento delle attività è limitato tra le app che hanno lo stesso ID di squadra (ad es. "Safari" non può accettare un'attività di Handoff da "Chrome" o viceversa).

Diventare / rassegnare l'attività corrente

Contrassegnare un'attività come corrente usando becomeCurrent rende disponibile per Handoff o Spotlight Indexing. Solo una attività può essere corrente alla volta. È possibile contrassegnare un'attività come inattiva senza invalidare chiamando resignCurrent .

Se invalidate un'attività, la stessa istanza potrebbe non essere resa di nuovo corrente.

Non contrassegnare un'attività come corrente quando la si fornisce a SiriKit .

Ricerca indicizzazione

Le attività non devono essere utilizzate come meccanismo di indicizzazione generico all'interno della tua app. Invece, dovrebbero essere utilizzati solo in risposta alle azioni avviate dall'utente. Per indicizzare tutti i contenuti della tua app, usa CoreSpotlight.

Creazione di NSUserActivity

Per creare un oggetto NSUserActivity , la tua app deve dichiarare i tipi di attività che supporta nel suo file Info.plist . Le attività supportate sono definite dalla tua applicazione e dovrebbero essere uniche. Un'attività viene definita utilizzando uno schema di denominazione degli stili di dominio inverso (ad esempio "com.companyName.productName.activityName"). Ecco come può apparire una voce nel tuo Info.plist:

Chiave Valore
NSUserActivityTypes [Array]
- item0 com.companyName.productName.activityName01
- item1 com.companyName.productName.activityName02

Una volta definiti tutti i tipi di attività supportati, è possibile iniziare ad accedere e utilizzarli nel codice dell'applicazione.

Per creare un oggetto NSUserActivity devi eseguire quanto segue

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

Dopo questo, l'attività di cui sopra dovrebbe essere disponibile per Handoff (anche se è necessario più lavoro per gestire correttamente il "Handoff").



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow