Conversation
Implement Conversation for the OpenWeb React Native SDK
The OpenWeb SDK exposes one major flow to set up. When the PreConversation view is loaded, a user sees the following displayed below an article in the article view controller:
- Preview of 2 comments from the conversation
- Text box to create new comments
- Button to show all comments
If a user clicks the button to see more comments, the SDK opens a new ViewController which displays all comments from the conversation.
If a user clicks on the text box, the creation screen appears to enable the user to type a comment. To post new comments, the user must be logged in.
Use the following steps to initialize the SDK and configure the Conversation:
1. Import the OpenWeb modules
import { SpotIM, SpotIMEventEmitter, SpotIMAPI } from '@spot.im/react-native-spotim'
2. Initialize OpenWeb SDK with your Spot_ID in your root component constructor
SpotIMAPI.init("<Spot_ID>")
3.Load PreConversation View in React-Native
<SpotIM
postId="<POST_ID>"
url="<POST_URL>"
title="<POST_TITLE>"
subtitle="<POST_SUBTITLE>"
thumbnailUrl="<POST_THUMBNAIL>"
darkModeBackgroundColor="#<HEX_COLOR>"
style={{flex: 1}}
/>
Dark Mode support
Android
By default, dark mode is false
.
To support dark mode according to the device settings, use supportAndroidSystemDarkMode
prop:
<SpotIM
...
supportAndroidSystemDarkMode={true}
/>
In order to force turning on / off dark mode, use androidIsDarkMode
prop:
<SpotIM
...
androidIsDarkMode={true}
/>
Make sure that supportAndroidSystemDarkMode
is not set to true
. Otherwise, androidIsDarkMode
prop won't work.
iOS
By default, dark mode will be enabled according to the device settings.
In order to force turning on / off dark mode, use the method:
SpotIMAPI.setIOSDarkMode(true);
Logout
Call the OpenWeb logout API whenever a user logs out of your system.
SpotIMAPI.logout();
Login status
The OpenWeb login status API enables you to understand the status of the current OpenWeb user.
SpotIMAPI.getUserLoginStatus()
.then(status => {
console.log(status);
})
.catch(error => {
console.error(error);
})
Login status | Description |
---|---|
Guest | Unregistered guest user You should call startSSO / sso("<SECRET_JWT>") if your own login status is 'user is logged in'. |
LoggedIn | Registered OpenWeb user You should avoid calling startSSO / sso("<SECRET_JWT>") in this case. If you own status is 'user is logged out', call the OpenWeb logout method. |
Analytics event callback
You can receive the OpenWeb analytics event by subscribing to trackAnalyticsEvent
event.
onTrackAnalyticsEvent(event) {
console.log('\n', event.type, '\n', event);
}
componentDidMount() {
...
const subscription = SpotIMEventEmitter.addListener('trackAnalyticsEvent', this.onTrackAnalyticsEvent);
}
Updated about 1 year ago