1. Installation
Install package
npm install --save azstack-react-native
1.1. Core
1.2. Sdk
2. Usage
import AZStackSdk from 'azstack-react-native/sdk/';
componentDidMount() {
this.refs.AZStackSdk.connect().then((result) => {
this.setState({ authenticatedUser: result });
}).catch((error) => {});
};
render() {
...
let azstackConfig = {
requestTimeout: 60000,
intervalPingTime: 60000,
autoReconnect: true,
autoReconnectLimitTries: 10,
autoReconnectIntervalTime: 5000,
logLevel: 'ERROR',
authenticatingData: {
appId: '',
publicKey: '',
azStackUserId: '',
userCredentials: '',
fullname: '',
namespace: ''
}
};
let defaultLayout = {
withStatusbar: true,
withHeader: true,
screenStyle: {},
statusbarStyle: {}
};
let languageCode = 'en';
let themeName = 'classic';
let getInitialMembers = (options) => {
return new Promise((resolve, reject) => {
resolve(['test_user_1', 'test_user_2', 'test_user_3'].filter((member) => {
return member.indexOf(options.searchText) > -1;
}));
});
};
let getMoreMembers = (options) => {
return new Promise((resolve, reject) => {
resolve(false);
});
};
let getFromPhoneNumbers = (options) => {
return new Promise((resolve, reject) => {
resolve([]);
});
};
let getPaidCallTags = (options) => {
return new Promise((resolve, reject) => {
resolve('');
});
};
let onBeforeMessageSend = (message) => {
return new Promise((resolve, reject) => {
resolve(message);
});
};
let onBeforeCalloutStart = (calloutData) => {
return new Promise((resolve, reject) => {
resolve(calloutData);
});
};
...
return (
<AZStackSdk
ref={'AZStackSdk'}
options={{
azstackConfig: azstackConfig,
defaultLayout: defaultLayout,
languageCode: languageCode,
getInitialMembers: getInitialMembers,
getMoreMembers: getMoreMembers,
getFromPhoneNumbers: getFromPhoneNumbers,
getPaidCallTags: getPaidCallTags,
onBeforeMessageSend: onBeforeMessageSend,
onBeforeCalloutStart: onBeforeCalloutStart
}}
>
)
...
}
APIS
List conversations
this.refs.AZStackSdk.showConversations(screenOptions)
How to start chat
this.refs.AZStackSdk.startChat({
chatType: '',
chatId: 0,
});
Show number pad for callout
this.refs.AZStackSdk.showNumberPad(screenOptions)
How to start callout
this.refs.AZStackSdk.startCallout({
callData: {
fullname: 'Some name',
toPhoneNumber: '0123456789',
fromPhoneNumber: '0123456789',
},
onEndCall: () => {
},
});
How to start video call
this.refs.AZStackSdk.startVideoCall({
callData: {
fullname: 'User 2',
toUserId: 387212,
},
onEndCall: () => {
},
});
How to start audio call
this.refs.AZStackSdk.startAudioCall({
callData: {
fullname: 'User 2',
toUserId: 387212,
},
onEndCall: () => {
},
});
Show call logs
this.refs.AZStackSdk.showCallLogs(screenOptions)
Show user info
this.refs.AZStackSdk.showUser(screenOptions)
Show group info
this.refs.AZStackSdk.showGroup(screenOptions)
screenOptions
{
onBackButtonPressed: () => {},
screenStyle: {},
statusbarStyle: {},
withStatusbar: true | false,
withHeader: true | false,
}
For more detail about how it work
Visit https://github.com/azstack/azstack-react-native/blob/master/docs/Usage.md