insider-expo-config-plugin
v1.0.2
Published
react-native-insider config plugin
Downloads
85
Maintainers
Readme
Insider Expo Config Plugin
Work in progress: iOS is not fully available yet, only the register of events
Dependencies
| Dependency | Version | Description | |------------|---------|-------------| | react-native-insider | ^6.5.2 | The Insider SDK Version to be used with this config plugin version |
Installation
npm install react-native-insider
expo install insider-expo-config-plugin
Configuration
On your app.json
file:
{
// ...
"android": {
// ...
"googleServicesFile": "./assets/google-services.json" // add your google services json to enable push notifications
},
// ...
"plugins": [
// ...
[
"insider-expo-config-plugin",
{
"partner": "partner_name",
"appGroup": "apple_app_group_id",
"apnsEnvironment": "development|production"
}
]
],
}
// ...
}
Android Push Notifications
Due to react-native limitations you must add an initialization to request permissions for push notifications in your react code:
const registerPushAndroid = async () => {
const isAndroid = Platform.OS.toLowerCase() === 'android';
if (!isAndroid) {
return;
}
try {
const { status: existingStatus } = await Notifications.getPermissionsAsync();
let finalStatus = existingStatus;
if (existingStatus !== 'granted') {
const { status } = await Notifications.requestPermissionsAsync();
finalStatus = status;
}
if (finalStatus !== 'granted') {
alert('Failed to get push token for push notification!');
return;
}
const token = (await Notifications.getDevicePushTokenAsync()).data;
RNInsider.setHybridPushToken(token)
console.log(token);
return token;
} catch (error) {
console.log('Error:', error);
}
}
const initializeInsider = async () => {
console.log("Initializing Insider SDK");
registerPushAndroid();
RNInsider.init(
"caaqui",
"group.com.caaqui.insider.capacitor.demotest",
() => {
console.log("Insider SDK Initialized");
}
);
// other initializations methods that fits your app
}