A library that provides access to the system's UI/app for sending SMS messages.
expo-sms
provides access to the system's UI/app for sending SMS messages.
-
npx expo install expo-sms
If you are installing this in an existing React Native app, start by installing expo
in your project. Then, follow the additional instructions as mentioned by the library's README under "Installation in bare React Native projects" section.
import * as SMS from 'expo-sms';
SMS.isAvailableAsync()
Determines whether SMS is available. Always returns false
in the iOS simulator, and in browser.
Promise<boolean>
Returns a promise that fulfils with a boolean
, indicating whether SMS is available on this device.
Example
const isAvailable = await SMS.isAvailableAsync();
if (isAvailable) {
// do your SMS stuff here
} else {
// misfortune... there's no SMS available on this device
}
SMS.sendSMSAsync(addresses, message, options)
Parameter | Type | Description |
---|---|---|
addresses | string | string[] | An array of addresses (phone numbers) or single address passed as strings. Those would appear as recipients of the prepared message. |
message | string | Message to be sent. |
options (optional) | SMSOptions | A |
Opens the default UI/app for sending SMS messages with prefilled addresses and message.
Returns a Promise that fulfils with the SMS action is invoked by the user, with corresponding result:
{ result: 'cancelled' }
.{ result: 'sent' }
.{ result: 'unknown' }
.Android does not provide information about the status of the SMS message, so on Android devices
the Promise will always resolve with { result: 'unknown' }
.
Note: The only feedback collected by this module is whether any message has been sent. That means we do not check actual content of message nor recipients list.
Example
const { result } = await SMS.sendSMSAsync(
['0123456789', '9876543210'],
'My sample HelloWorld message',
{
attachments: {
uri: 'path/myfile.png',
mimeType: 'image/png',
filename: 'myfile.png',
},
}
);
SMSAttachment
An object that is used to describe an attachment that is included with a SMS message.
Name | Type | Description |
---|---|---|
filename | string | The filename of the attachment. |
mimeType | string | The mime type of the attachment such as |
uri | string | The content URI of the attachment. The URI needs be a content URI so that it can be accessed by other applications outside of Expo. See FileSystem.getContentUriAsync). |
SMSOptions
Name | Type | Description |
---|---|---|
attachments (optional) | SMSAttachment | SMSAttachment[] | - |
SMSResponse
Name | Type | Description |
---|---|---|
result | 'unknown' | 'sent' | 'cancelled' | Status of SMS action invoked by the user. |