React Native Search Api module
The SearchApi
module gives you a general React Native interface to interact with the iOS Search API, Core Spotlight.
For more information about iOS Search APIs, see https://developer.apple.com/ios/search/.
Installation
Automatic part
npm install react-native-search-api --save
react-native link
Manual part
To the top of your AppDelegate.m
add the following line:
In your AppDelegate implementation add the following:
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler
Usage
Subscribe to the search item open events in your components like this:
{ <...> SearchApi; SearchApi;}
To prevent memory leaks don't forget to unsubscribe:
{ <...> SearchApi; SearchApi}
Generally you should be interested whether the app was started using the search, therefore consider using the following two methods:
// For the spotlight item:SearchApi// For the app history item:SearchApi
In order to create a new spotlight item, use indexSpotlightItem
or indexSpotlightItems
:
SearchApi;
To add new items to the app history, use createUserActivity
:
SearchApi;
The parameters, that items may specify are listed below:
Search item keys
Dictionaries, passed to create spotlight and app history items have some common and some specific keys, here is the list of all possible keys.
Common keys
title
: string
Title of the item. Required for both item types.
contentDescription
: string
Description of the item. Optional.
keywords
: Array
An array of keywords, assigned to the search item. Optional.
thumbnail
: string|int|object
Thumbnail to be presented in the search results. The same format as source
in
the Image
component. Optional.
Examples:
var localItem = <...> thumbnail: ;var remoteItem = <...> thumbnail: uri: 'https://facebook.github.io/react-native/docs/assets/favicon.png';
Please refer to documentation for more details.
Spotlight-specific keys
uniqueIdentifier
: string
The unique identifier of the spotlight item, passed later on during the item opening event. Required.
domain
: string
The domain for the spotlight item. Optional.
App history-specific keys
userInfo
: Object
A dictionary, passed later on during the item opening event. Required.
eligibleForPublicIndexing
: boolean
A flag, that when set to true
allows to add the item to the public index.
Optional.
expirationDate
: Date
Expiration date of the user activity item. Optional.
webpageURL
: string
URL of the page, representing the same content on the app's website.