A React Native wrapper for the Twilio mobile SDK
This library implement the superseeded Twilio Client SDK. Twilio has moved to the new Programmable Voice SDK.
Run npm install react-native-twilio --save in your project directory
- Open your project in XCode, right click on
Librariesand clickAdd Files to "Your Project Name" - Within
node_modules, findreact-native-twilio/iosand add RCTTwilio.xcodeproj to your project. - Add
libRCTTwilio.atoBuild Phases -> Link Binary With Libraries
Add the lib to android/settings.gradle
include ':react-native-twilio' project(':react-native-twilio').projectDir = new File(settingsDir, '../node_modules/react-native-twilio/android') Add the lib dependency to app/build.gradle
dependencies { compile fileTree(dir: "libs", include: ["*.jar"]) compile "com.android.support:appcompat-v7:23.0.1" ... compile project(':react-native-twilio') // <---- } Import the library in your MainApplication.java
import android.app.Application; import android.util.Log; import com.facebook.react.ReactApplication; import com.facebook.react.ReactInstanceManager; import com.facebook.react.ReactNativeHost; import com.facebook.react.ReactPackage; import com.facebook.react.shell.MainReactPackage; import com.rogchap.react.modules.twilio.TwilioPackage; // <---- import java.util.Arrays; import java.util.List; public class MainApplication extends Application implements ReactApplication { private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) { /** * Returns whether dev mode should be enabled. * This enables e.g. the dev menu. */ @Override protected boolean getUseDeveloperSupport() { return BuildConfig.DEBUG; } /** * A list of packages used by the app. If the app uses additional views * or modules besides the default ones, add more packages here. */ @Override protected List<ReactPackage> getPackages() { return Arrays.<ReactPackage>asList( new MainReactPackage(), new TwilioPackage() // <---- ); } }; @Override public ReactNativeHost getReactNativeHost() { return mReactNativeHost; } } configure your AndroidManifest.xml file
<uses-permission android:name="android.permission.INTERNET" /> ... <!-- Twilio --> <service android:name="com.twilio.client.TwilioClientService" android:exported="false" android:stopWithTask="true"/> <!-- Twilio --> For a full example check the full working example
Have a look at the Twilio Client SDK for details.
const Twilio = require('react-native-twilio'); ... componentWillMount() { Twilio.initWithTokenUrl('https://example.com/token'); // or Twilio.initWithToken('sometoken'); Twilio.addEventListener('deviceReady', this._deviceReady); Twilio.addEventListener('deviceDidStartListening', this._deviceDidStartListening); Twilio.addEventListener('deviceDidStopListening', this._deviceDidStopListening); Twilio.addEventListener('deviceDidReceiveIncoming', this._deviceDidReceiveIncoming); Twilio.addEventListener('connectionDidStartConnecting', this._connectionDidStartConnecting); Twilio.addEventListener('connectionDidConnect', this._connectionDidConnect); Twilio.addEventListener('connectionDidDisconnect', this._connectionDidDisconnect); Twilio.addEventListener('connectionDidFail', this._connectionDidFail); } ... Twilio.connect({To: '+61234567890'}); Twilio.disconnect(); Twilio.accept(); Twilio.reject(); Twilio.ignore();