@identifyorg/react-native-sdk
v0.1.1
Published
IdentifyOrg React Native SDK — video/voice calls, live streaming, and metered chat, built on LiveKit's official React Native client.
Maintainers
Readme
@identifyorg/react-native-sdk
React Native SDK for IdentifyOrg calls, live streaming, and chat — built
on LiveKit's official @livekit/react-native client.
npm install @identifyorg/react-native-sdk livekit-client @livekit/react-native @livekit/react-native-webrtc
npx pod-install # iOSFollow @livekit/react-native's native setup guide
for the required Info.plist / AndroidManifest.xml camera/mic permissions.
This SDK calls registerGlobals() for you at import time (wires
react-native-webrtc in as livekit-client's WebRTC implementation), so you
don't need to call it yourself.
Video call
import { IdentifyOrgClient, useIdentifyOrgCall } from "@identifyorg/react-native-sdk";
import { VideoTrack } from "@livekit/react-native";
const identifyorg = new IdentifyOrgClient({ apiKey: "io_test_pub_..." });
function CallScreen() {
const { room, connected, join, leave } = useIdentifyOrgCall(identifyorg);
useEffect(() => {
join({ type: "video", identity: "user-123", displayName: "Ada" });
return () => { leave(); };
}, []);
if (!connected || !room) return <Text>Connecting…</Text>;
// Render tracks with LiveKit RN's own components — see their docs for
// <VideoTrack trackRef={...} /> usage against `room`'s participants.
return <CallUI room={room} onHangUp={leave} />;
}Chat widget
import { IdentifyOrgClient, useIdentifyOrgChat } from "@identifyorg/react-native-sdk";
const identifyorg = new IdentifyOrgClient({ apiKey: "io_test_pub_..." });
function ChatScreen() {
const { messages, connected, join, send } = useIdentifyOrgChat(identifyorg);
useEffect(() => { join({ visitorId: "visitor-42", visitorName: "Guest" }); }, []);
return (
<View>
<FlatList data={messages} renderItem={({ item }) => <Text>{item.from}: {item.text}</Text>} />
<TextInput onSubmitEditing={(e) => send(e.nativeEvent.text)} />
</View>
);
}Security
Only ever use a publishable key (io_test_pub_.../io_live_pub_...) in
the app bundle. Secret keys must be minted server-side — see the
Node/Python/Go SDKs — since they can also verify BVN/NIN/FRSC and manage
billing.
Cross-platform note
If you'd rather avoid a native LiveKit dependency entirely (e.g. Expo Go
without a custom dev client), embed the plain @identifyorg/js-sdk
inside a WebView instead — same IdentifyOrg account, same tokens, same
metering, just running through the browser engine instead of native WebRTC.
