README
TalkJS React Native SDK
Official TalkJS SDK for React Native
Note: This module does not support Expo (Managed Workflow) because it contains native code. If you use Expo's managed workflow, consider using @talkjs/expo which is identical to this module but with features that depend on native code removed.
You can also create a development build for your project using EAS Build or eject to the bare workflow.
What is TalkJS?
TalkJS lets you add user-to-user chat to your marketplace, on-demand app, or social platform. For more information, visit talkjs.com.
Don't hesitate to let us know if you have any questions about TalkJS.
Installation
npm install @talkjs/react-native react-native-webview react-native-push-notification
Usage
You can import the library in one of the following ways:
ES6 / TypeScript:
import * as TalkjsRn from '@talkjs/react-native';
CommonJS:
const TalkjsRn = require('@talkjs/react-native');
Then follow our React Native guide to start using TalkJS in your project.
TalkJS is fully forward compatible
We promise to never break API compatibility. We may at times deprecate methods or fields, but we will never remove them. If something that used to work stops working, then that's a bug. Please report it and we'll fix it asap.
The package is being released in a beta state. The reason for this is that there are things that one can do with the TalkJS JavaScript SDK that aren't possible with the React Native SDK. We will release v1.0.0 of this package once the two SDKs are similar in terms of features. This however does not take away from our commitment to always maintain backward compatibility. So you can be assured that the package is stable for production use.
Changelog
Note: These are only the changes that have an effect on the React Native package and its interface. TalkJS gets many improvements and fixes all the time. Consider subscribing to our changelog if you want to stay updated.
0.3.0
When upgrading to this version, you'll need to update your android/build.gradle
file by adding the
following block to the repositories section of allprojects:
allprojects {
// ... you may have other items before the "repositories" section.
repositories {
// ... you will already have some local repositories defined ...
// ADD THIS BLOCK
maven {
url "$rootDir/../node_modules/@notifee/react-native/android/libs"
}
}
}
New Features
- Improved Android Notifications. They are now shown as Conversations and grouped accordingly. Images sent will also appear in the notifications.
- Added more configuration options on Android Channels (Reference).
- Improved Error Reporting.
- Add support for Guest Access through the addition of
asGuest
prop in Chatbox. - Enable capturing of keyup events in Chatbox through the
captureKeyboardEvents
andonKeyup
props. - Added the methods:
getText
andtypeText
to MessageField.
Changes
- Changed
oneOnOneId
to also acceptUser
Objects. - Changed
registerPushNotificationHandlers
to add support for iOS Permissions. - Changed
showFeedHeader
default tofalse
.
Fixes
- Fix bug when user and/or conversation synchronization were disabled.
Deprecated
- The following props in ConversationList:
feedConversationTitleMode
,thirdParties
,onBlur
andonFocus
. - The following props in Chatbox:
chatSubtitleMode
,chatTitleMode
,thirdParties
,translateConversations
,onBlur
andonFocus
.
0.2.1
- Fix bug in Chatbox when conversation synchronization was disabled.
0.2.0
- Added a ConversationList component.
- Added the messageField property to the Chatbox component
- Fix bug in ConversationBuilder.setAttributes that prevented setting a value to null or undefined after previously having given it a value.
- (iOS): Fix push notification registration token not getting received.
- (iOS): Fix zooming when messageField is clicked.
0.1.0
- Added the following components: Session, Chatbox and HtmlPanel.
- First release