inuba_flutter_sdk 1.0.0
inuba_flutter_sdk: ^1.0.0 copied to clipboard
iNuba Flutter SDK - Integration library for flutter mobile applications
iNuba Flutter SDK #
The iNuba Flutter SDK allows you to integrate iNuba services seamlessly into your Flutter application with type-safe configuration and bidirectional communication.
The package uses the flutter_inappwebview plugin to provide a robust WebView experience with bidirectional communication between Flutter and JavaScript.
To get your credentials, contact the iNuba development team.
Installation #
Add the iNuba Flutter SDK to your project by including it in your pubspec.yaml file:
dependencies:
inuba_flutter_sdk: ^1.0.0
Then run:
flutter pub get
Quick Start #
Basic Usage #
Import the package in your project:
import 'package:inuba_flutter_sdk/inuba_flutter_sdk.dart';
Minimal integration:
INubaSDK(
clientToken: 'your_client_token',
userToken: 'your_user_token',
)
Advanced Configuration #
Full configuration with all available options:
INubaSDK(
clientToken: 'your_client_token',
userToken: 'your_user_token',
// Optional white label
whitelabel: Whitelabel.iNuba,
// Optional environment
environment: Environment.production,
// Optional platform identification
platform: Platform.android,
// Optional display mode
displayMode: DisplayMode.fullScreen,
// Optional language
language: Language.en,
// Optional callbacks
onDownload: (url, filename, downloadAndShare) {
// Handle file download from WebView
print('Download requested: $filename from $url');
},
onClose: (reason) {
// Custom close behavior (defaults to Navigator.pop)
print('SDK closed: $reason');
Navigator.of(context).pop();
},
)
Configuration Options #
Whitelabel #
- Whitelabel.iNuba: Default iNuba branding (default)
- Whitelabel.custom('YourBrand'): Custom branding (Contact iNuba to get your own branding)
Environment #
- Environment.develop: Development environment (default)
- Environment.production: Production environment
Platform #
- Platform.android: Android platform (default)
- Platform.ios: iOS platform
Display Mode #
- DisplayMode.fullScreen: Full screen presentation (default)
- DisplayMode.inlineView: Inline view presentation
Language #
- Language.en: English language (default)
- Language.es: Spanish language
Event Callbacks #
Download Event #
Handle file downloads initiated from the WebView:
onDownload: (String url, String filename, bool downloadAndShare) {
// url: File URL to download
// filename: Suggested filename
// downloadAndShare: Whether to share after download
// Implement your download logic here
}
Close Event #
Handle SDK close requests from the WebView:
onClose: (String reason) {
// reason: Close reason from WebView (default: 'unknown')
// Custom close logic
}
Note: If onClose is not provided, the SDK automatically calls Navigator.pop(context).
Android Configuration #
Add this provider configuration to your android/app/src/main/AndroidManifest.xml inside the <application> tag:
<provider
android:name="com.pichillilorenzo.flutter_inappwebview_android.InAppWebViewFileProvider"
android:authorities="${applicationId}.flutter_inappwebview_android.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/provider_paths"/>
</provider>
Testing and Development #
Best Practices #
For the best development and testing experience:
-
Use Physical Devices: While the SDK works on emulators, testing on physical devices is highly recommended for accurate performance evaluation. Android emulators may exhibit WebView rendering issues that don't occur on real devices.
-
Enable Hardware Acceleration: Ensure hardware acceleration is enabled on your test devices for optimal WebView performance.
-
Check Network Connectivity: The SDK requires active internet connection to communicate with iNuba services.
Example Application #
A complete example application is available in the example/ directory. To run it:
cd example
flutter run
See example/README.md for detailed integration instructions and best practices.
Support #
For questions or issues, please contact the iNuba development team.
License #
MIT License - see the LICENSE file for details.