AddToSiriButton
A Button that allows the user to easily add/edit/remove a voice shortcut by pressing it.
import {
AddToSiriButton,
SiriButtonStyles,
presentShortcut,
} from "react-native-siri-shortcut";
const OrderSoupSiriButton = () => {
return (
<AddToSiriButton
shortcut={orderSoupShortcut}
buttonStyle={SiriButtonStyles.automaticOutline}
onPress={() => {
presentShortcut(orderSoupShortcut, ({status}) => {
console.log(`${status} order soup shortcut`);
});
}}
/>
);
};
note
This component is only supported from iOS 12 onwards. On Android and iOS versions older than 12, it will not render.
Props
buttonStyle
One of 6 possible styles to apply to the button. Can be one of:
SiriButtonStyles.white
SiriButtonStyles.whiteOutline
SiriButtonStyles.black
SiriButtonStyles.blackOutline
iOS 13+ only
SiriButtonStyles.automaticSiriButtonStyles.automaticOutline
Defaults to automatic.
note
The automatic and automaticOutline styles are only supported from iOS 13 onwards. On iOS 12, they default to white and whiteOutline, respectfully.
style
You can use any style you would use for a View.
shortcut
Required. The shortcut to attach to this button.
Type of ShortcutOptions.
onPress
Called whenever the user presses the button. You usually call presentShortcut here.
Type of () => void.
Type Reference
SiriButtonStyles
enum SiriButtonStyles {
white = 0,
whiteOutline = 1,
black = 2,
blackOutline = 3,
/** Only supported on iOS >= 13. On iOS 12 this defaults to `white` */
automatic = 4,
/** Only supported on iOS >= 13. On iOS 12 this defaults to `whiteOutline` */
automaticOutline = 5,
}
ShortcutOptions
{
/** The activity type with which the user activity object was created. */
activityType: string;
/** An optional, user-visible title for this activity, such as a document name or web page title. */
title?: string;
/** A set of keys that represent the minimal information about the activity that should be stored for later restoration. */
requiredUserInfoKeys?: Array<string>;
/** A dictionary containing app-specific state information needed to continue an activity on another device. */
userInfo?: { [key: string]: any };
/** Indicates that the state of the activity needs to be updated. */
needsSave?: boolean;
/** A set of localized keywords that can help users find the activity in search results. */
keywords?: Array<string>;
/** A value used to identify the user activity. */
persistentIdentifier?: string;
/** A Boolean value that indicates whether the activity can be continued on another device using Handoff. */
isEligibleForHandoff?: boolean;
/** A Boolean value that indicates whether the activity should be added to the on-device index. */
isEligibleForSearch?: boolean;
/** A Boolean value that indicates whether the activity can be publicly accessed by all iOS users. */
isEligibleForPublicIndexing?: boolean;
/** The date after which the activity is no longer eligible for Handoff or indexing. In ms since Unix Epox */
expirationDate?: number;
/** Webpage to load in a browser to continue the activity. */
webpageURL?: string;
/** A Boolean value that determines whether Siri can suggest the user activity as a shortcut to the user. */
isEligibleForPrediction?: boolean;
/** A phrase suggested to the user when they create a shortcut. */
suggestedInvocationPhrase?: string;
/** Content type of this shorcut. Check available options at https://developer.apple.com/documentation/mobilecoreservices/uttype/uti_abstract_types */
contentType?: string;
/** An optional description for the shortcut. */
description?: string;
}