react-native-inappbrowser-reborn is a JavaScript library providing a robust interface to the system's native web browser functionality within a React Native application. It leverages Chrome Custom Tabs on Android and SafariServices/AuthenticationServices on iOS to offer a rich, secure, and performant in-app browsing experience. The current stable version is 3.7.1, released recently, demonstrating active development and maintenance. The package aims for a regular release cadence, incorporating new features and bug fixes as seen in its recent minor and patch updates. Key differentiators include its cross-platform compatibility, support for handling complex redirects (crucial for OAuth flows), extensive customization options for the browser UI, and built-in error handling. It's actively used in several production applications, highlighting its reliability and maturity for critical use cases like authentication and external link handling.
npm install react-native-inappbrowser-rebornVerified import paths — ran on the pinned version, not inferred.
This quickstart demonstrates how to open a URL using InAppBrowser.open, including platform-specific customization options and basic error handling, after checking for availability.
For Android Support, set `compileSdkVersion`, `targetSdkVersion`, and `supportLibVersion` to 28.0.0. For AndroidX, ensure your project is properly migrated to AndroidX via `npx jetify` or manual configuration to avoid conflicts.
Upgrade to `react-native-inappbrowser-reborn@3.6.0` or higher to resolve compatibility issues with iOS 14.5's security changes.
For authentication, always use `await InAppBrowser.openAuth(url, redirectUrl, options)` and handle the returned URL. Remember to set up custom URL schemes in your `Info.plist` and `AndroidManifest.xml`.
Always use `await` when calling methods like `InAppBrowser.open()` or `InAppBrowser.isAvailable()` to ensure proper execution flow and error handling.
Upgrade to `react-native-inappbrowser-reborn@3.6.2` or higher. Ensure your `android/build.gradle` is correctly configured for either Android Support (SDK 28.0.0) or AndroidX.
Upgrade to `react-native-inappbrowser-reborn@3.6.3` or higher, which includes a fix for this specific exception.
Update your `react-native-inappbrowser-reborn` package to version `3.6.0` or newer.
For React Native >= 0.60, ensure `pod install` is run in the `ios` directory. For Android, verify `build.gradle` configurations (AndroidX/Support) and rebuild the app. Always check `InAppBrowser.isAvailable()` before attempting to open a URL.