Quickstart Expo

Team
SDK Team
Last Updated
April 14, 2026
This guide will help you to implement the Group Link Mobile SDK on your application written in React Native using the Expo framework on the managed workflow.

Step 1 - Installing the Group Link Expo Library

Inside the root of your expo managed project, you need to install some libraries to set up the necessary environment, there are some essential libraries you will need to install as shown below.

  • expo-notifications
  • expo-constants
  • rn-grouplink-sdk
  • grouplink-sdk-expo-plugin
1npx expo install expo-notifications &&
2npx expo install expo-constants &&
3npm install @grouplinknetwork/grouplink-sdk-expo-plugin

Step 2 - Plugin Configuration

After you installed all the necessary libraries, you will need to set up the Group Link plugin, to do this you have to insert the rn-grouplinksdk-expo-plugin with the necessary options, like the token to initialize the plugin, you need to insert this inside the plugins array on your app.json, you can find this file at the root folder.

1"plugins": [
2 [
3 // ...
4 "@grouplinknetwork/grouplink-sdk-expo-plugin",
5 {
6 "token": "GROUP_LINK_TOKEN"
7 }
8 // ...
9 ]
10]

After this you'll need to run:

1npx expo prebuild
2cd ios && pod install

Here are all the params you can call within our plugin:

  • token - String - The Group Link Initialization token

If the Expo version is 52 or lower, it will be necessary to install a library for iOS:

1npm install @grouplinknetwork/rn-grouplink-sdk

You need to call the bluetooth and location permission

1import * as GroupLinkSDK from '@grouplinknetwork/rn-grouplink-sdk';
2
3export default function App() {
4 useEffect(()=>{
5// ...
6 // This function requires the Group Link Token of your organization.
7 GroupLinkSDK.startGrouplinkIOS("GROUP_LINK_TOKEN");
8 // Requesting Bluetooth and user location permission;
9 GroupLinkSDK.startBluetoothIOS();
10 GroupLinkSDK.startLocationIOS();
11// ...
12 },[])
13
14 return (
15 <View style={styles.container}>
16 <Text>Este é um aplicativo de teste</Text>
17 </View>
18 );
19}

Info.plist strings - THESE STRINGS WILL NOT OVERRIDE ALREADY SETTED STRINGS

  • NSLocationAlwaysAndWhenInUseUsageDescription - The iOS Core Location Always usage string inside info.plist
    • The default description is: "We need location permission for a better user experience."
  • NSLocationWhenInUseUsageDescription - The iOS Core Location While in Use string inside info.plist
    • The default description is: "We need location permission to provide a better user experience."
  • NSBluetoothPeripheralUsageDescription - The iOS Core Bluetooth Peripheral usage string inside info.plist
    • The default description is: "We need Bluetooth permission to provide a better user experience."
  • NSBluetoothAlwaysUsageDescription - The iOS Core Bluetooth Usage string inside info.plist
    • The default description is: "We need Bluetooth permission to provide a better user experience."

Step 3 - Push Notifications Token Setup

To pass get your notification token, you will need to use the expo-notifications and expo-constants libraries, you can get the token string using the function below and send to our SDK via setDevicePushTokenIOS from our React Native SDK.

  • First, import the necessary depencencies to your application init file.
1import Constants from "expo-constants";
2import * as GroupLinkSDK from "@grouplinknetwork/rn-grouplink-sdk";
3import * as Notifications from "expo-notifications";
4
5// ...
  • After that, insert the parse notification function below
1// ...
2const getPushToken = () => {
3 if (!Constants.isDevice) {
4 return Promise.reject("YOU ARE RUNNING ON SIMULATOR");
5 }
6
7 try {
8 return Notifications.getPermissionsAsync()
9 .then((statusResult) => {
10 return statusResult.status !== "granted"
11 ? Notifications.requestPermissionsAsync()
12 : statusResult;
13 })
14 .then((statusResult) => {
15 if (statusResult.status !== "granted") {
16 throw "Failed to get push token for push notification!";
17 }
18
19 return Notifications.getDevicePushTokenAsync();
20 })
21 .then((tokenData) => tokenData.data);
22 } catch (error) {
23 return Promise.reject("Couldn't check notifications permissions");
24 }
25};
26// ...

You can get the notification token using this function inside your code, we recommend using a useEffect with the application initialization to set the token inside our SDK.

IMPORTANT: Don't forget to import the React.
1// ...
2React.useEffect(() => {
3 getPushToken().then((token) => {
4 GroupLinkSDK.setDevicePushTokenIOS(token);
5 });
6}, []);
7// ...