O módulo SearchApi
fornece uma interface React Native geral para interagir com a API de pesquisa do iOS, Core Spotlight.
Para obter mais informações sobre APIs de pesquisa do iOS, consulte https://developer.apple.com/ios/search/.
npm install react-native-search-api --save
react-native link
No topo do seu AppDelegate.m
adicione a seguinte linha:
# import " RCTSearchApiManager.h "
Na sua implementação do AppDelegate adicione o seguinte:
- ( BOOL )application:(UIApplication *)application continueUserActivity:( NSUserActivity *)userActivity restorationHandler:( void (^)( NSArray * _Nullable))restorationHandler {
return [RCTSearchApiManager application: application continueUserActivity: userActivity restorationHandler: restorationHandler];
}
Assine os eventos de abertura do item de pesquisa em seus componentes como este:
componentDidMount ( ) {
< ... >
SearchApi . addOnSpotlightItemOpenEventListener ( this . handleOnSpotlightItemOpenEventListener ) ;
SearchApi . addOnAppHistoryItemOpenEventListener ( this . handleOnAppHistoryItemOpenEventListener ) ;
}
Para evitar vazamentos de memória, não se esqueça de cancelar a inscrição:
componentWillUnmount ( ) {
< ... >
SearchApi . removeOnSpotlightItemOpenEventListener ( this . handleOnSpotlightItemOpenEventListener ) ;
SearchApi . removeOnAppHistoryItemOpenEventListener ( this . handleOnAppHistoryItemOpenEventListener )
}
Geralmente você deve estar interessado em saber se o aplicativo foi iniciado usando a pesquisa, portanto, considere usar os dois métodos a seguir:
// For the spotlight item:
SearchApi . getInitialSpotlightItem ( ) . then ( result => {
if ( result ) {
console . log ( 'Started with a spotlight item!' )
}
} )
// For the app history item:
SearchApi . getInitialAppHistoryItem ( ) . then ( result => {
if ( result ) {
console . log ( 'Started with an app history item!' )
}
} )
Para criar um novo item em destaque, use indexSpotlightItem
ou indexSpotlightItems
:
SearchApi . indexSpotlightItem ( item ) . then ( result => {
console . log ( 'Success' ) ;
} ) . catch ( err => {
console . log ( 'Error: ' + err ) ;
} ) ;
Para adicionar novos itens ao histórico do aplicativo, use createUserActivity
:
SearchApi . indexAppHistoryItem ( item ) . then ( result => {
console . log ( 'Success' ) ;
that . setState ( { labelText : 'Success' } ) ;
} ) . catch ( err => {
console . log ( 'Error: ' + err ) ;
that . setState ( { labelText : ( 'Error: ' + err ) } ) ;
} ) ;
Os parâmetros que os itens podem especificar estão listados abaixo:
Dicionários, passados para criar itens de destaque e histórico de aplicativos, têm algumas chaves comuns e algumas específicas. Aqui está a lista de todas as chaves possíveis.
title
: stringTítulo do item. Obrigatório para ambos os tipos de item.
contentDescription
: stringDescrição do item. Opcional.
keywords
: matrizUma matriz de palavras-chave atribuídas ao item de pesquisa. Opcional.
thumbnail
: string|int|objeto Miniatura a ser apresentada nos resultados da pesquisa. O mesmo formato da source
no componente Image
. Opcional.
Exemplos:
var localItem = {
< ... > ,
thumbnail : require ( '/react-native/img/favicon.png' )
} ;
var remoteItem = {
< ... > ,
thumbnail : { uri : 'https://facebook.github.io/react-native/docs/assets/favicon.png' }
} ;
Consulte a documentação para obter mais detalhes.
uniqueIdentifier
: stringO identificador exclusivo do item em destaque, transmitido posteriormente durante o evento de abertura do item. Obrigatório.
domain
: stringO domínio do item em destaque. Opcional.
userInfo
: ObjetoUm dicionário, passado posteriormente durante o evento de abertura do item. Obrigatório.
eligibleForPublicIndexing
: booleano Um sinalizador que, quando definido como true
permite adicionar o item ao índice público. Opcional.
expirationDate
: DataData de expiração do item de atividade do usuário. Opcional.
webpageURL
: stringURL da página, representando o mesmo conteúdo do site do aplicativo.
© 2017 PresenceKit por Ombori AB