Skip Navigation

BlackBerry Dynamics SDK for React Native
 version 7.0

What's new in the 
BlackBerry Dynamics SDK for React Native
 version 7.0

The 
BlackBerry Dynamics SDK for React Native
 is open sourced and available on 
GitHub
, along with developer documentation and sample apps, at https://github.com/blackberry/BlackBerry-Dynamics-React-Native-SDK.
Support
Feature
Description
Development requirements
  • macOS
     X
  • Windows 10
     (
    Android
     only)
React Native supported versions
  • 0.61.x
  • 0.60.x
BlackBerry Dynamics SDK
 supported versions
Features
Feature
Description
Integration with 
BlackBerry Dynamics
Integration of the 
BlackBerry Dynamics SDK
 for 
iOS
 and 
Android
 into the 
React Native
 application is supported by the addition of the BlackBerry-Dynamics-for-React-Native-Base module.
Secure connectivity
XMLHttpRequest and fetch are secured in scope of the BlackBerry-Dynamics-for-React-Native-Networking module.
  • On 
    iOS
    , secure communication within the <WebView /> component is supported using XMLHttpRequest and fetch. Use either UIWebView (deprecated) or WKWebView
  • On 
    Android
    , secure communication within the <WebView />  component is not supported
Secure storage
  • AsyncStorage is secured in the BlackBerry-Dynamics-for-React-Native-Async-Storage module
  • SQLite is secured in the BlackBerry-Dynamics-for-React-Native-SQLite-Storage module
Data leakage prevention (DLP)
  • On 
    iOS
    , the <Text /> component, <TextInput /> component, and Clipboard API are secured by integrating 
    BlackBerry Dynamics
  • On 
    Android
    , the following items are required:
    • The <Text /> component is secured in scope of the BlackBerry-Dynamics-for-React-Native-Text UI component
    • The <TextInput /> component is secured in scope of the BlackBerry-Dynamics-for-React-Native-TextInput UI component
    • The BlackBerry-Dynamics-for-React-Native-Clipboard module secures the Clipboard API on Android
Package contents
Feature
Description
Modules
  • BlackBerry-Dynamics-for-React-Native-Base: automatically integrates the 
    BlackBerry Dynamics SDK
     for 
    iOS
     and 
    Android
     into the React Native application
  • BlackBerry-Dynamics-for-React-Native-Networking: secures XMLHttpRequest and fetch APIs on 
    Android
    . For more information, see React Native: Networking
  • BlackBerry-Dynamics-for-React-Native-SQLite-Storage: secures SQLite database usage, based on the react-native-sqlite-storage 3rd party module
  • BlackBerry-Dynamics-for-React-Native-Async-Storage: secures built-in AsyncStorage
  • BlackBerry-Dynamics-for-React-Native-Clipboard: secures the built-in Clipboard API
UI components
  • BlackBerry-Dynamics-for-React-Native-Text: Enables data leakage protection (DLP) within UI components on 
    Android
  • BlackBerry-Dynamics-for-React-Native-TextInput: enables DLP within UI components on 
    Android
Sample apps
  • BasicNetworking: Provides examples of using fetch and XMLHttpRequest in different scenarios. Covers different HTTP request types (GET, POST, PUT, DELETE, and so on), authentication types (basic auth, Digest, NTLM), and includes the ability to send different data types to the server and receive responses for different data types
  • ClipboardTestApp: Demonstrates how to use the Clipboard API for data leakage prevention (DLP). It is possible to change the DLP policy on 
    UEM
     and see how it affects the clipboard within the app. If DLP is enabled, it will not be possible to copy clipboard data from a 
    BlackBerry Dynamics
     app to a non-
    BlackBerry Dynamics
     app, and vice-versa
  • DLP: Demonstrates how to use the <Text /> and <TextInput /> UI components together with the 
    UEM
     DLP policy option. If DLP is on, it is not possible to perform cut-copy-paste operations to transfer data from 
    BlackBerry Dynamics
     to non-
    BlackBerry Dynamics
     applications, and vice-versa
  • SQLite: Demonstrates how to use a secure SQLite DB instance in a React Native app
  • UnitTest: Runs Jasmine unit tests for fetch, XMLHttpRequest, Clipboard, AsyncStorage, and SQLite in a React Native application
  • WKWebViewBrowser: Demonstrates how to use the <WebView /> component in a React Native application for 
    iOS

Known issues

  • Importing a prepopulated database is not supported. For more information, see https://github.com/andpor/react-native-sqlite-storage#importing-a-pre-populated-database.
  • When an app is in dark mode, text in textinput fields becomes white and impossible to read on a white background. This is a known issue with the 
    React Native
     platform. For more information, see https://github.com/facebook/react-native/issues/26299 and https://github.com/xgfe/react-native-datepicker/issues/365. (GD-47807)
    Workaround
    : Add the following lines to your plist file to prevent system ui-elements from changing color when in dark mode:
    *<key>UIUserInterfaceStyle</key> <string>Light</string>*
  • After you add or remove 
    BlackBerry Dynamics
     modules, peer dependency warnings might display. This is a known 
    React Native
     issue related to ESLint 6 dependencies. It is not related to 
    BlackBerry Dynamics
     modules and does not impact functionality. For more information, see https://github.com/typescript-eslint/typescript-eslint/issues/735. (GD-47757)
    Workaround
    : Use ESlint version 5.x in your project. Use the following to add the 
    BlackBerry Dynamics
     modules without "es-lint" warnings:
    $ npx react-native init TestEsLintNpm --version 0.60.6 --npm $ cd TestEsLintNpm $ npm uninstall eslint --save-dev $ npm install eslint@5 --save-dev $ npm i <your_path_to_BBD_modules>/BlackBerry-Dynamics-for-React-Native-Base
  • If you try to uninstall react-native-bbd-base using the "react-native uninstall" command, the uninstall is not successful. (GD-47598)
    Workaround
    : Use the "npm uninstall" command instead.