@exponotify/sdk
v1.2.3
Published
Push notifications for Expo apps - register devices, track opens, manage users
Downloads
991
Maintainers
Readme
Exponotify SDK
Push notifications for Expo apps. Dead simple.
Installation
npm install @exponotify/sdknpx expo install expo-notifications expo-deviceQuick Start (3 lines)
import Push from '@exponotify/sdk';
// Initialize (call once on app start)
await Push.init('pk_live_your_api_key');
// That's it! 🎉With User ID
// After user logs in
await Push.init('pk_live_xxx', 'user-123');
// Or identify later
await Push.identify('user-123');User Attributes
// Set multiple attributes
await Push.setUser({
name: 'John Doe',
email: '[email protected]',
plan: 'premium',
});
// Set single attribute
await Push.set('country', 'US');Tags
// Add tags (great for segmentation)
await Push.tag('vip', 'beta-tester', 'premium');Full Example
// App.tsx
import { useEffect } from 'react';
import Push from '@exponotify/sdk';
export default function App() {
useEffect(() => {
// Initialize on app start
Push.init('pk_live_xxx');
}, []);
return <YourApp />;
}
// After login
async function onLogin(user) {
await Push.identify(user.id, {
name: user.name,
email: user.email,
});
}
// Track user actions
async function onPurchase(plan) {
await Push.set('plan', plan);
await Push.tag('paying-customer');
}
// On logout
async function onLogout() {
await Push.logout();
}API Reference
| Method | Description |
|--------|-------------|
| Push.init(apiKey, userId?) | Initialize and register for push |
| Push.identify(userId, attrs?) | Identify user after login |
| Push.setUser(attributes) | Set multiple user attributes |
| Push.set(key, value) | Set single attribute |
| Push.tag(...tags) | Add tags to user |
| Push.logout() | Clear user identity |
| Push.unsubscribe() | Unregister from push |
| Push.getToken() | Get the push token |
| Push.isReady() | Check if registered |
Advanced Usage
For more control, use the class-based API:
import { Exponotify, initExponotify, useExponotify } from '@exponotify/sdk';
// Class instance
const client = new Exponotify({ apiKey: 'pk_live_xxx' });
await client.register('user-123');
// React hook
const { register, isRegistered, token } = useExponotify();Listen for Notification Opens
import { useNotificationOpened } from '@exponotify/sdk';
function App() {
useNotificationOpened((data) => {
console.log('User opened notification:', data);
// Handle deep linking
if (data.deepLink) {
navigation.navigate(data.deepLink);
}
});
return <YourApp />;
}License
MIT
