link-lab
v1.0.4
Published
A library for native integrations in web applications
Readme
Native Interface Library
This library facilitates seamless communication between a web application and native modules, enabling various actions such as interacting with native device features, fetching app data, and handling notifications.
Features
- Webview Initialization: Notify native layers when the webview is ready.
- App Info Fetching: Retrieve app-specific information.
- Deep Linking: Open specific app sections via deep links.
- URL Handling: Open URLs in a browser or native layers.
- Social Sharing: Share content across social platforms.
- Camera & Gallery Access: Open front/back cameras or the device gallery.
- Notification Management: Schedule notifications.
- QR Code Scanning: Scan QR codes using the device camera.
- Device Features: Trigger vibrations, capture screenshots, toggle loaders, and more.
Installation
To include this library in your project:
npm install dining-native-bridge-clientUsage
Import the Library
import NativeBridge from 'dining-native-bridge-client';Initialize the Native Interface
Ensure the interface is properly initialized before invoking any native calls:
NativeBridge.init()
.then(() => console.log('Native interface initialized!'))
.catch((error) => console.error('Initialization failed:', error));Check Initialization Status
if (NativeBridge.isNativeInitialized()) {
console.log('Native interface is active.');
} else {
console.log('Native support not available.');
}Example API Calls
Open a Deep Link
NativeBridge.openDeeplink('myapp://home')
.then(() => console.log('Deep link opened!'))
.catch((error) => console.error('Failed to open deep link:', error));Share Content via Social Media
NativeBridge.socialShare(
'https://example.com',
'Awesome Content',
'Check out this amazing content!',
'https://example.com/image.jpg'
)
.then(() => console.log('Content shared!'))
.catch((error) => console.error('Sharing failed:', error));Schedule a Notification
NativeBridge.scheduleNotification(
'Reminder',
'Don\'t forget to check the app!',
'2024-12-12T10:00:00Z'
)
.then(() => console.log('Notification scheduled!'))
.catch((error) => console.error('Notification scheduling failed:', error));Capture a Screenshot
NativeBridge.captureScreenshot()
.then((screenshotPath) => console.log('Screenshot saved at:', screenshotPath))
.catch((error) => console.error('Screenshot failed:', error));API Reference
Initialization
init(): Initializes the native interface. Returns a promise.isNativeInitialized(): Checks if the native interface is active. Returns a boolean.
Native Callback Map
webviewInitComplete(): Notifies the native layer that the webview is ready.getAppInfo(): Fetches app information from the native layer.openDeeplink(url): Opens a deep link in the app.openUrl(url): Opens a URL in the browser or native layer.socialShare(url, title, description, image): Shares content on social platforms.openFrontCamera(): Opens the front camera.openBackCamera(): Opens the back camera.closeWebView(url): Closes the webview.showLoader(): Displays a loader.hideLoader(): Hides the loader.openGallery(): Opens the device gallery.scheduleNotification(title, message, time): Schedules a notification.scanQRCode(): Scans a QR code.haptics(): Triggers device vibration.isDarkModeEnabled(): Checks if dark mode is enabled.captureScreenshot(): Captures a screenshot.logoutUser(): Logs the user out of the app.downloadFile(url): Downloads a file from the specified URL.
Error Handling
This library includes built-in error handling for common issues:
NATIVE_NOT_SUPPORT: Native capability is not supported.BAD_REQUEST: Invalid input or request payload.REQUEST_TIMEOUT: Native request timeout after 10 seconds.
Contribution
We welcome contributions! Please submit issues or pull requests to improve this library.
