webtonative 1.0.74 → 1.0.75-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.editorconfig +10 -0
- package/.prettierrc.json +7 -0
- package/README.md +31 -2
- package/build/ATTConsent/index.d.ts +17 -0
- package/build/ATTConsent/index.d.ts.map +1 -0
- package/build/ATTConsent/index.js +54 -0
- package/build/ATTConsent/index.js.map +1 -0
- package/build/ATTConsent/types.d.ts +15 -0
- package/build/ATTConsent/types.d.ts.map +1 -0
- package/build/ATTConsent/types.js +3 -0
- package/build/ATTConsent/types.js.map +1 -0
- package/build/AdMob/index.d.ts +31 -0
- package/build/AdMob/index.d.ts.map +1 -0
- package/build/AdMob/index.js +102 -0
- package/build/AdMob/index.js.map +1 -0
- package/build/AdMob/types.d.ts +25 -0
- package/build/AdMob/types.d.ts.map +1 -0
- package/build/AdMob/types.js +4 -0
- package/build/AdMob/types.js.map +1 -0
- package/build/AppReview/index.d.ts +7 -0
- package/build/AppReview/index.d.ts.map +1 -0
- package/build/AppReview/index.js +22 -0
- package/build/AppReview/index.js.map +1 -0
- package/build/AppReview/types.d.ts +8 -0
- package/build/AppReview/types.d.ts.map +1 -0
- package/build/AppReview/types.js +4 -0
- package/build/AppReview/types.js.map +1 -0
- package/build/AppsFlyer/index.d.ts +15 -0
- package/build/AppsFlyer/index.d.ts.map +1 -0
- package/build/AppsFlyer/index.js +43 -0
- package/build/AppsFlyer/index.js.map +1 -0
- package/build/AppsFlyer/types.d.ts +10 -0
- package/build/AppsFlyer/types.d.ts.map +1 -0
- package/build/AppsFlyer/types.js +3 -0
- package/build/AppsFlyer/types.js.map +1 -0
- package/build/BackgroundLocation/index.d.ts +12 -0
- package/build/BackgroundLocation/index.d.ts.map +1 -0
- package/build/BackgroundLocation/index.js +65 -0
- package/build/BackgroundLocation/index.js.map +1 -0
- package/build/BackgroundLocation/types.d.ts +32 -0
- package/build/BackgroundLocation/types.d.ts.map +1 -0
- package/build/BackgroundLocation/types.js +3 -0
- package/build/BackgroundLocation/types.js.map +1 -0
- package/build/Beacon/index.d.ts +7 -0
- package/build/Beacon/index.d.ts.map +1 -0
- package/build/Beacon/index.js +30 -0
- package/build/Beacon/index.js.map +1 -0
- package/build/Beacon/types.d.ts +19 -0
- package/build/Beacon/types.d.ts.map +1 -0
- package/build/Beacon/types.js +3 -0
- package/build/Beacon/types.js.map +1 -0
- package/build/Biometric/index.d.ts +27 -0
- package/build/Biometric/index.d.ts.map +1 -0
- package/build/Biometric/index.js +125 -0
- package/build/Biometric/index.js.map +1 -0
- package/build/Biometric/types.d.ts +24 -0
- package/build/Biometric/types.d.ts.map +1 -0
- package/build/Biometric/types.js +3 -0
- package/build/Biometric/types.js.map +1 -0
- package/build/Bluetooth/index.d.ts +17 -0
- package/build/Bluetooth/index.d.ts.map +1 -0
- package/build/Bluetooth/index.js +67 -0
- package/build/Bluetooth/index.js.map +1 -0
- package/build/Bluetooth/types.d.ts +34 -0
- package/build/Bluetooth/types.d.ts.map +1 -0
- package/build/Bluetooth/types.js +3 -0
- package/build/Bluetooth/types.js.map +1 -0
- package/build/BottomNavigation/index.d.ts +11 -0
- package/build/BottomNavigation/index.d.ts.map +1 -0
- package/build/BottomNavigation/index.js +41 -0
- package/build/BottomNavigation/index.js.map +1 -0
- package/build/BottomNavigation/types.d.ts +9 -0
- package/build/BottomNavigation/types.d.ts.map +1 -0
- package/build/BottomNavigation/types.js +3 -0
- package/build/BottomNavigation/types.js.map +1 -0
- package/build/Clipboard/index.d.ts +12 -0
- package/build/Clipboard/index.d.ts.map +1 -0
- package/build/Clipboard/index.js +45 -0
- package/build/Clipboard/index.js.map +1 -0
- package/build/Clipboard/types.d.ts +20 -0
- package/build/Clipboard/types.d.ts.map +1 -0
- package/build/Clipboard/types.js +4 -0
- package/build/Clipboard/types.js.map +1 -0
- package/build/Facebook/events.d.ts +13 -0
- package/build/Facebook/events.d.ts.map +1 -0
- package/build/Facebook/events.js +44 -0
- package/build/Facebook/events.js.map +1 -0
- package/build/Facebook/index.d.ts +3 -0
- package/build/Facebook/index.d.ts.map +1 -0
- package/build/Facebook/index.js +29 -0
- package/build/Facebook/index.js.map +1 -0
- package/build/Facebook/types.d.ts +22 -0
- package/build/Facebook/types.d.ts.map +1 -0
- package/build/Facebook/types.js +3 -0
- package/build/Facebook/types.js.map +1 -0
- package/build/Firebase/Analytics/index.d.ts +32 -0
- package/build/Firebase/Analytics/index.d.ts.map +1 -0
- package/build/Firebase/Analytics/index.js +110 -0
- package/build/Firebase/Analytics/index.js.map +1 -0
- package/build/Firebase/Messaging/index.d.ts +17 -0
- package/build/Firebase/Messaging/index.d.ts.map +1 -0
- package/build/Firebase/Messaging/index.js +64 -0
- package/build/Firebase/Messaging/index.js.map +1 -0
- package/build/Firebase/index.d.ts +4 -0
- package/build/Firebase/index.d.ts.map +1 -0
- package/build/Firebase/index.js +31 -0
- package/build/Firebase/index.js.map +1 -0
- package/build/Firebase/types.d.ts +58 -0
- package/build/Firebase/types.d.ts.map +1 -0
- package/build/Firebase/types.js +4 -0
- package/build/Firebase/types.js.map +1 -0
- package/build/FirebaseAnalytics/index.d.ts +3 -0
- package/build/FirebaseAnalytics/index.d.ts.map +1 -0
- package/build/FirebaseAnalytics/index.js +29 -0
- package/build/FirebaseAnalytics/index.js.map +1 -0
- package/build/Haptics/index.d.ts +7 -0
- package/build/Haptics/index.d.ts.map +1 -0
- package/build/Haptics/index.js +21 -0
- package/build/Haptics/index.js.map +1 -0
- package/build/Haptics/types.d.ts +8 -0
- package/build/Haptics/types.d.ts.map +1 -0
- package/build/Haptics/types.js +3 -0
- package/build/Haptics/types.js.map +1 -0
- package/build/InAppPurchase/index.d.ts +23 -0
- package/build/InAppPurchase/index.d.ts.map +1 -0
- package/build/InAppPurchase/index.js +81 -0
- package/build/InAppPurchase/index.js.map +1 -0
- package/build/InAppPurchase/types.d.ts +30 -0
- package/build/InAppPurchase/types.d.ts.map +1 -0
- package/build/InAppPurchase/types.js +3 -0
- package/build/InAppPurchase/types.js.map +1 -0
- package/build/InAppUpdate/index.d.ts +12 -0
- package/build/InAppUpdate/index.d.ts.map +1 -0
- package/build/InAppUpdate/index.js +39 -0
- package/build/InAppUpdate/index.js.map +1 -0
- package/build/InAppUpdate/types.d.ts +15 -0
- package/build/InAppUpdate/types.d.ts.map +1 -0
- package/build/InAppUpdate/types.js +3 -0
- package/build/InAppUpdate/types.js.map +1 -0
- package/build/MediaPlayer/index.d.ts +17 -0
- package/build/MediaPlayer/index.d.ts.map +1 -0
- package/build/MediaPlayer/index.js +56 -0
- package/build/MediaPlayer/index.js.map +1 -0
- package/build/MediaPlayer/types.d.ts +14 -0
- package/build/MediaPlayer/types.d.ts.map +1 -0
- package/build/MediaPlayer/types.js +3 -0
- package/build/MediaPlayer/types.js.map +1 -0
- package/build/NativeContacts/index.d.ts +12 -0
- package/build/NativeContacts/index.d.ts.map +1 -0
- package/build/NativeContacts/index.js +51 -0
- package/build/NativeContacts/index.js.map +1 -0
- package/build/NativeContacts/types.d.ts +14 -0
- package/build/NativeContacts/types.d.ts.map +1 -0
- package/build/NativeContacts/types.js +3 -0
- package/build/NativeContacts/types.js.map +1 -0
- package/build/Notification/index.d.ts +11 -0
- package/build/Notification/index.d.ts.map +1 -0
- package/build/Notification/index.js +42 -0
- package/build/Notification/index.js.map +1 -0
- package/build/Notification/types.d.ts +14 -0
- package/build/Notification/types.d.ts.map +1 -0
- package/build/Notification/types.js +3 -0
- package/build/Notification/types.js.map +1 -0
- package/build/OneSignal/index.d.ts +4 -0
- package/build/OneSignal/index.d.ts.map +1 -0
- package/build/OneSignal/index.js +59 -0
- package/build/OneSignal/index.js.map +1 -0
- package/build/OneSignal/types.d.ts +11 -0
- package/build/OneSignal/types.d.ts.map +1 -0
- package/build/OneSignal/types.js +4 -0
- package/build/OneSignal/types.js.map +1 -0
- package/build/Printing/index.d.ts +7 -0
- package/build/Printing/index.d.ts.map +1 -0
- package/build/Printing/index.js +20 -0
- package/build/Printing/index.js.map +1 -0
- package/build/Printing/types.d.ts +9 -0
- package/build/Printing/types.d.ts.map +1 -0
- package/build/Printing/types.js +3 -0
- package/build/Printing/types.js.map +1 -0
- package/build/README.md +33 -0
- package/build/Screen/index.d.ts +9 -0
- package/build/Screen/index.d.ts.map +1 -0
- package/build/Screen/index.js +35 -0
- package/build/Screen/index.js.map +1 -0
- package/build/Screen/types.d.ts +6 -0
- package/build/Screen/types.d.ts.map +1 -0
- package/build/Screen/types.js +4 -0
- package/build/Screen/types.js.map +1 -0
- package/build/Siri/index.d.ts +7 -0
- package/build/Siri/index.d.ts.map +1 -0
- package/build/Siri/index.js +26 -0
- package/build/Siri/index.js.map +1 -0
- package/build/Siri/types.d.ts +14 -0
- package/build/Siri/types.d.ts.map +1 -0
- package/build/Siri/types.js +3 -0
- package/build/Siri/types.js.map +1 -0
- package/build/SocialLogin/apple.d.ts +12 -0
- package/build/SocialLogin/apple.d.ts.map +1 -0
- package/build/SocialLogin/apple.js +32 -0
- package/build/SocialLogin/apple.js.map +1 -0
- package/build/SocialLogin/facebook.d.ts +22 -0
- package/build/SocialLogin/facebook.d.ts.map +1 -0
- package/build/SocialLogin/facebook.js +61 -0
- package/build/SocialLogin/facebook.js.map +1 -0
- package/build/SocialLogin/google.d.ts +22 -0
- package/build/SocialLogin/google.d.ts.map +1 -0
- package/build/SocialLogin/google.js +61 -0
- package/build/SocialLogin/google.js.map +1 -0
- package/build/SocialLogin/index.d.ts +17 -0
- package/build/SocialLogin/index.d.ts.map +1 -0
- package/build/SocialLogin/index.js +23 -0
- package/build/SocialLogin/index.js.map +1 -0
- package/build/SocialLogin/types.d.ts +39 -0
- package/build/SocialLogin/types.d.ts.map +1 -0
- package/build/SocialLogin/types.js +3 -0
- package/build/SocialLogin/types.js.map +1 -0
- package/build/Stripe/index.d.ts +3 -0
- package/build/Stripe/index.d.ts.map +1 -0
- package/build/Stripe/index.js +49 -0
- package/build/Stripe/index.js.map +1 -0
- package/build/Stripe/types.d.ts +32 -0
- package/build/Stripe/types.d.ts.map +1 -0
- package/build/Stripe/types.js +3 -0
- package/build/Stripe/types.js.map +1 -0
- package/build/VoiceSearch/index.d.ts +13 -0
- package/build/VoiceSearch/index.d.ts.map +1 -0
- package/build/VoiceSearch/index.js +34 -0
- package/build/VoiceSearch/index.js.map +1 -0
- package/build/VoiceSearch/types.d.ts +10 -0
- package/build/VoiceSearch/types.d.ts.map +1 -0
- package/build/VoiceSearch/types.js +3 -0
- package/build/VoiceSearch/types.js.map +1 -0
- package/build/barcode/barcode-scan.d.ts +16 -0
- package/build/barcode/barcode-scan.d.ts.map +1 -0
- package/build/barcode/barcode-scan.js +40 -0
- package/build/barcode/barcode-scan.js.map +1 -0
- package/build/barcode/barcode-types.d.ts +18 -0
- package/build/barcode/barcode-types.d.ts.map +1 -0
- package/build/barcode/barcode-types.js +3 -0
- package/build/barcode/barcode-types.js.map +1 -0
- package/build/barcode/formats.d.ts +18 -0
- package/build/barcode/formats.d.ts.map +1 -0
- package/build/barcode/formats.js +23 -0
- package/build/barcode/formats.js.map +1 -0
- package/build/barcode/index.d.ts +5 -0
- package/build/barcode/index.d.ts.map +1 -0
- package/build/barcode/index.js +13 -0
- package/build/barcode/index.js.map +1 -0
- package/build/barcode/types.d.ts +17 -0
- package/build/barcode/types.d.ts.map +1 -0
- package/build/barcode/types.js +22 -0
- package/build/barcode/types.js.map +1 -0
- package/build/index.d.ts +15 -0
- package/build/index.d.ts.map +1 -0
- package/build/index.js +110 -0
- package/build/index.js.map +1 -0
- package/build/package.json +155 -0
- package/build/types/index.d.ts +49 -0
- package/build/types/index.d.ts.map +1 -0
- package/build/types/index.js +4 -0
- package/build/types/index.js.map +1 -0
- package/build/utills.d.ts +12 -0
- package/build/utills.d.ts.map +1 -0
- package/build/utills.js +111 -0
- package/build/utills.js.map +1 -0
- package/build/webtonative.min.js +1 -0
- package/buildScript.ts +35 -0
- package/client.ts +106 -0
- package/index.d.ts +65 -0
- package/package.json +36 -31
- package/src/ATTConsent/index.ts +51 -0
- package/src/ATTConsent/types.ts +17 -0
- package/src/AdMob/index.ts +113 -0
- package/src/AdMob/types.ts +37 -0
- package/src/AppReview/index.ts +19 -0
- package/src/AppReview/types.ts +12 -0
- package/src/AppsFlyer/index.ts +46 -0
- package/src/AppsFlyer/types.ts +10 -0
- package/src/BackgroundLocation/index.ts +78 -0
- package/src/BackgroundLocation/types.ts +34 -0
- package/src/Beacon/index.ts +28 -0
- package/src/Beacon/types.ts +22 -0
- package/src/Biometric/index.ts +126 -0
- package/src/Biometric/types.ts +27 -0
- package/src/Bluetooth/index.ts +71 -0
- package/src/Bluetooth/types.ts +40 -0
- package/src/BottomNavigation/index.ts +39 -0
- package/src/BottomNavigation/types.ts +9 -0
- package/src/Clipboard/index.ts +48 -0
- package/src/Clipboard/types.ts +30 -0
- package/src/Facebook/events.ts +45 -0
- package/src/Facebook/index.ts +3 -0
- package/src/Facebook/types.ts +24 -0
- package/src/Firebase/Analytics/index.ts +127 -0
- package/src/Firebase/Messaging/index.ts +73 -0
- package/src/Firebase/index.ts +4 -0
- package/src/Firebase/types.ts +74 -0
- package/src/FirebaseAnalytics/index.ts +3 -0
- package/src/Haptics/index.ts +17 -0
- package/src/Haptics/types.ts +8 -0
- package/src/InAppPurchase/index.ts +92 -0
- package/src/InAppPurchase/types.ts +35 -0
- package/src/InAppUpdate/index.ts +40 -0
- package/src/InAppUpdate/types.ts +17 -0
- package/src/MediaPlayer/index.ts +56 -0
- package/src/MediaPlayer/types.ts +15 -0
- package/src/NativeContacts/index.ts +50 -0
- package/src/NativeContacts/types.ts +16 -0
- package/src/Notification/index.ts +41 -0
- package/src/Notification/types.ts +16 -0
- package/src/OneSignal/index.ts +54 -0
- package/src/OneSignal/types.ts +15 -0
- package/src/Printing/index.ts +17 -0
- package/src/Printing/types.ts +9 -0
- package/src/Screen/index.ts +34 -0
- package/src/Screen/types.ts +8 -0
- package/src/Siri/index.ts +23 -0
- package/src/Siri/types.ts +14 -0
- package/src/SocialLogin/apple.ts +31 -0
- package/src/SocialLogin/facebook.ts +64 -0
- package/src/SocialLogin/google.ts +64 -0
- package/src/SocialLogin/index.ts +20 -0
- package/src/SocialLogin/types.ts +52 -0
- package/src/Stripe/index.ts +54 -0
- package/src/Stripe/types.ts +37 -0
- package/src/VoiceSearch/index.ts +37 -0
- package/src/VoiceSearch/types.ts +12 -0
- package/src/barcode/barcode-scan.ts +59 -0
- package/src/barcode/barcode-types.ts +22 -0
- package/src/barcode/formats.ts +19 -0
- package/src/barcode/index.ts +5 -0
- package/src/barcode/types.ts +18 -0
- package/src/index.ts +105 -0
- package/src/types/index.ts +71 -0
- package/src/utills.ts +110 -0
- package/tsconfig.json +27 -0
- package/webpack.config.js +57 -0
- package/ATTConsent/index.js +0 -1
- package/AdMob/index.js +0 -1
- package/AppReview/index.js +0 -1
- package/AppsFlyer/index.js +0 -4
- package/BackgroundLocation/index.js +0 -4
- package/Beacon/index.js +0 -1
- package/Biometric/index.js +0 -1
- package/Bluetooth/index.js +0 -1
- package/BottomNavigation/index.js +0 -4
- package/Clipboard/index.js +0 -4
- package/Facebook/events.js +0 -4
- package/Facebook/index.js +0 -1
- package/Firebase/Analytics/index.js +0 -4
- package/Firebase/Messaging/index.js +0 -4
- package/Firebase/index.js +0 -1
- package/FirebaseAnalytics/index.js +0 -1
- package/Haptics/index.js +0 -1
- package/InAppPurchase/index.js +0 -1
- package/InAppUpdate/index.js +0 -1
- package/MediaPlayer/index.js +0 -7
- package/NativeContacts/index.js +0 -6
- package/Notification/index.js +0 -5
- package/OneSignal/index.js +0 -1
- package/Printing/index.js +0 -1
- package/Screen/index.js +0 -4
- package/Siri/index.js +0 -1
- package/SocialLogin/apple.js +0 -1
- package/SocialLogin/facebook.js +0 -9
- package/SocialLogin/google.js +0 -9
- package/SocialLogin/index.js +0 -1
- package/Stripe/index.js +0 -1
- package/VoiceSearch/index.js +0 -1
- package/barcode/barcode-scan.js +0 -1
- package/barcode/formats.js +0 -1
- package/barcode/index.js +0 -1
- package/barcode/types.js +0 -1
- package/index.js +0 -4
- package/utills.js +0 -1
- package/webtonative.min.js +0 -1
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export interface BiometricResponse {
|
|
2
|
+
type: string;
|
|
3
|
+
status?: string;
|
|
4
|
+
[key: string]: any;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
export interface BiometricCallback {
|
|
8
|
+
(response: BiometricResponse): void;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export interface BiometricOptions {
|
|
12
|
+
callback?: BiometricCallback;
|
|
13
|
+
secret?: string;
|
|
14
|
+
prompt?: string;
|
|
15
|
+
isAuthenticationOptional?: boolean;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export interface BiometricIosMessage {
|
|
19
|
+
action: string;
|
|
20
|
+
secret?: string;
|
|
21
|
+
prompt?: string;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export interface BiometricAuthOptions {
|
|
25
|
+
prompt?: string;
|
|
26
|
+
isAuthenticationOptional?: boolean;
|
|
27
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { platform, registerCb, webToNative, webToNativeIos } from "../utills";
|
|
2
|
+
import {
|
|
3
|
+
BluetoothScanOptions,
|
|
4
|
+
BluetoothPairOptions,
|
|
5
|
+
BluetoothUnpairOptions,
|
|
6
|
+
BluetoothResponse,
|
|
7
|
+
BluetoothPairParams,
|
|
8
|
+
BluetoothUnpairParams
|
|
9
|
+
} from "./types";
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Starts scanning for Bluetooth devices (Android only)
|
|
13
|
+
* @param options - Options for Bluetooth scanning
|
|
14
|
+
*/
|
|
15
|
+
export const startBluetoothScan = (options: BluetoothScanOptions = {}): void => {
|
|
16
|
+
const { callback } = options;
|
|
17
|
+
if (["ANDROID_APP"].includes(platform)) {
|
|
18
|
+
registerCb((response: BluetoothResponse) => {
|
|
19
|
+
const { type } = response;
|
|
20
|
+
if (type === "startBluetoothScan") {
|
|
21
|
+
callback && callback(response);
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
platform === "ANDROID_APP" &&
|
|
26
|
+
webToNative.startBluetoothScan();
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Pairs with a Bluetooth device (Android only)
|
|
32
|
+
* @param options - Options for pairing with a Bluetooth device
|
|
33
|
+
*/
|
|
34
|
+
export const pairDevice = (options: BluetoothPairOptions = {}): void => {
|
|
35
|
+
const { callback, address, timeout = 10 } = options;
|
|
36
|
+
if (["ANDROID_APP"].includes(platform)) {
|
|
37
|
+
registerCb((response: BluetoothResponse) => {
|
|
38
|
+
const { type } = response;
|
|
39
|
+
if (type === "pairWithDevice") {
|
|
40
|
+
callback && callback(response);
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
platform === "ANDROID_APP" &&
|
|
45
|
+
webToNative.pairWithDevice(JSON.stringify({
|
|
46
|
+
address,
|
|
47
|
+
timeout
|
|
48
|
+
} as BluetoothPairParams));
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Unpairs from a Bluetooth device (Android only)
|
|
54
|
+
* @param options - Options for unpairing from a Bluetooth device
|
|
55
|
+
*/
|
|
56
|
+
export const unpairDevice = (options: BluetoothUnpairOptions = {}): void => {
|
|
57
|
+
const { callback, address } = options;
|
|
58
|
+
if (["ANDROID_APP"].includes(platform)) {
|
|
59
|
+
registerCb((response: BluetoothResponse) => {
|
|
60
|
+
const { type } = response;
|
|
61
|
+
if (type === "unpairDevice") {
|
|
62
|
+
callback && callback(response);
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
platform === "ANDROID_APP" &&
|
|
67
|
+
webToNative.unpairDevice(JSON.stringify({
|
|
68
|
+
address
|
|
69
|
+
} as BluetoothUnpairParams));
|
|
70
|
+
}
|
|
71
|
+
};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export interface BluetoothResponse {
|
|
2
|
+
type: string;
|
|
3
|
+
status?: string;
|
|
4
|
+
devices?: BluetoothDevice[];
|
|
5
|
+
[key: string]: any;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export interface BluetoothDevice {
|
|
9
|
+
name?: string;
|
|
10
|
+
address?: string;
|
|
11
|
+
[key: string]: any;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export interface BluetoothCallback {
|
|
15
|
+
(response: BluetoothResponse): void;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export interface BluetoothScanOptions {
|
|
19
|
+
callback?: BluetoothCallback;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export interface BluetoothPairOptions {
|
|
23
|
+
callback?: BluetoothCallback;
|
|
24
|
+
address?: string;
|
|
25
|
+
timeout?: number;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export interface BluetoothUnpairOptions {
|
|
29
|
+
callback?: BluetoothCallback;
|
|
30
|
+
address?: string;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export interface BluetoothPairParams {
|
|
34
|
+
address?: string;
|
|
35
|
+
timeout?: number;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export interface BluetoothUnpairParams {
|
|
39
|
+
address?: string;
|
|
40
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { platform, webToNative, webToNativeIos } from "../utills";
|
|
2
|
+
import { BottomNavigationShowOptions, BottomNavigationIosMessage } from "./types";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Hides the bottom navigation
|
|
6
|
+
*/
|
|
7
|
+
export const hide = (): void => {
|
|
8
|
+
if (["ANDROID_APP", "IOS_APP"].includes(platform)) {
|
|
9
|
+
platform === "ANDROID_APP" &&
|
|
10
|
+
webToNative.showHideStickyFooter(false);
|
|
11
|
+
|
|
12
|
+
if (platform === "IOS_APP" && webToNativeIos) {
|
|
13
|
+
webToNativeIos.postMessage({
|
|
14
|
+
action: "showHideStickyFooter",
|
|
15
|
+
show: false,
|
|
16
|
+
} as BottomNavigationIosMessage);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Shows the bottom navigation
|
|
23
|
+
* @param options - Options for showing bottom navigation
|
|
24
|
+
*/
|
|
25
|
+
export const show = (options: BottomNavigationShowOptions = {}): void => {
|
|
26
|
+
const { key } = options;
|
|
27
|
+
if (["ANDROID_APP", "IOS_APP"].includes(platform)) {
|
|
28
|
+
platform === "ANDROID_APP" &&
|
|
29
|
+
webToNative.showHideStickyFooter(true);
|
|
30
|
+
|
|
31
|
+
if (platform === "IOS_APP" && webToNativeIos) {
|
|
32
|
+
webToNativeIos.postMessage({
|
|
33
|
+
action: "showHideStickyFooter",
|
|
34
|
+
show: true,
|
|
35
|
+
key,
|
|
36
|
+
} as BottomNavigationIosMessage);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
};
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { platform, registerCb, webToNative, webToNativeIos } from "../utills";
|
|
2
|
+
import {
|
|
3
|
+
ClipboardResponse,
|
|
4
|
+
GetClipboardOptions,
|
|
5
|
+
SetClipboardOptions,
|
|
6
|
+
ClipboardIosMessage
|
|
7
|
+
} from "./types";
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Gets content from clipboard
|
|
11
|
+
* @param options - Options for getting clipboard content
|
|
12
|
+
*/
|
|
13
|
+
export const get = (options: GetClipboardOptions = {}): void => {
|
|
14
|
+
const { callback } = options;
|
|
15
|
+
if (["ANDROID_APP", "IOS_APP"].includes(platform)) {
|
|
16
|
+
registerCb((response: ClipboardResponse) => {
|
|
17
|
+
const { type } = response;
|
|
18
|
+
if (type === "CLIPBOARD_CONTENT") {
|
|
19
|
+
callback && callback(response);
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
if (platform === "IOS_APP" && webToNativeIos) {
|
|
24
|
+
webToNativeIos.postMessage({
|
|
25
|
+
action: "getClipBoardData",
|
|
26
|
+
} as ClipboardIosMessage);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
platform === "ANDROID_APP" && webToNative.getText();
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Sets content to clipboard
|
|
35
|
+
* @param options - Options for setting clipboard content
|
|
36
|
+
*/
|
|
37
|
+
export const set = (options: SetClipboardOptions = {}): void => {
|
|
38
|
+
if (["ANDROID_APP", "IOS_APP"].includes(platform)) {
|
|
39
|
+
if (platform === "IOS_APP" && webToNativeIos) {
|
|
40
|
+
webToNativeIos.postMessage({
|
|
41
|
+
action: "setClipBoardData",
|
|
42
|
+
text: options.data || "",
|
|
43
|
+
} as ClipboardIosMessage);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
platform === "ANDROID_APP" && webToNative.setText(options.data || "");
|
|
47
|
+
}
|
|
48
|
+
};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
// Define types for Clipboard module
|
|
2
|
+
|
|
3
|
+
// Clipboard response interface
|
|
4
|
+
export interface ClipboardResponse {
|
|
5
|
+
type: string;
|
|
6
|
+
content?: string;
|
|
7
|
+
[key: string]: any;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
// Clipboard callback function type
|
|
11
|
+
export type ClipboardCallback = (response: ClipboardResponse) => void;
|
|
12
|
+
|
|
13
|
+
// Get clipboard options
|
|
14
|
+
export interface GetClipboardOptions {
|
|
15
|
+
callback?: ClipboardCallback;
|
|
16
|
+
[key: string]: any;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
// Set clipboard options
|
|
20
|
+
export interface SetClipboardOptions {
|
|
21
|
+
data?: string;
|
|
22
|
+
[key: string]: any;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
// iOS message structure
|
|
26
|
+
export interface ClipboardIosMessage {
|
|
27
|
+
action: string;
|
|
28
|
+
text?: string;
|
|
29
|
+
[key: string]: any;
|
|
30
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { platform, webToNative, webToNativeIos } from "../utills";
|
|
2
|
+
import { FacebookEventOptions, FacebookPurchaseOptions, FacebookEventIosMessage } from "./types";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Sends a Facebook event
|
|
6
|
+
* @param options - Options for the Facebook event
|
|
7
|
+
*/
|
|
8
|
+
export const send = (options: FacebookEventOptions): void => {
|
|
9
|
+
if (["ANDROID_APP", "IOS_APP"].includes(platform)) {
|
|
10
|
+
const { event, valueToSum, parameters } = options;
|
|
11
|
+
|
|
12
|
+
platform === "ANDROID_APP" && webToNative.addFbEvents(event, parameters);
|
|
13
|
+
|
|
14
|
+
if (platform === "IOS_APP" && webToNativeIos) {
|
|
15
|
+
webToNativeIos.postMessage({
|
|
16
|
+
action: "sendFBEvent",
|
|
17
|
+
eventName: event,
|
|
18
|
+
valueToSum,
|
|
19
|
+
parameters,
|
|
20
|
+
} as FacebookEventIosMessage);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Sends a Facebook purchase event
|
|
27
|
+
* @param options - Options for the Facebook purchase event
|
|
28
|
+
* @example wtn.facebook.events.sendPurchase({amount: 10.99, currency: "USD", parameters: {item_name: "Product"}});
|
|
29
|
+
*/
|
|
30
|
+
export const sendPurchase = (options: FacebookPurchaseOptions): void => {
|
|
31
|
+
if (["ANDROID_APP", "IOS_APP"].includes(platform)) {
|
|
32
|
+
const { amount, currency, parameters } = options;
|
|
33
|
+
|
|
34
|
+
platform === "ANDROID_APP" && webToNative.addFbPurchaseEvent(amount, currency, parameters);
|
|
35
|
+
|
|
36
|
+
if (platform === "IOS_APP" && webToNativeIos) {
|
|
37
|
+
webToNativeIos.postMessage({
|
|
38
|
+
action: "sendFBPurchaseEvent",
|
|
39
|
+
currency,
|
|
40
|
+
amount,
|
|
41
|
+
parameters,
|
|
42
|
+
} as FacebookEventIosMessage);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export interface FacebookEventParameters {
|
|
2
|
+
[key: string]: any;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
export interface FacebookEventOptions {
|
|
6
|
+
event: string;
|
|
7
|
+
valueToSum?: number;
|
|
8
|
+
parameters?: FacebookEventParameters;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export interface FacebookPurchaseOptions {
|
|
12
|
+
amount: number;
|
|
13
|
+
currency: string;
|
|
14
|
+
parameters?: FacebookEventParameters;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export interface FacebookEventIosMessage {
|
|
18
|
+
action: string;
|
|
19
|
+
eventName?: string;
|
|
20
|
+
valueToSum?: number;
|
|
21
|
+
parameters?: FacebookEventParameters;
|
|
22
|
+
currency?: string;
|
|
23
|
+
amount?: number;
|
|
24
|
+
}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { platform, webToNative, webToNativeIos } from "../../utills";
|
|
2
|
+
import {
|
|
3
|
+
FirebaseAnalyticsCollectionOptions,
|
|
4
|
+
FirebaseUserIdOptions,
|
|
5
|
+
FirebaseUserPropertyOptions,
|
|
6
|
+
FirebaseDefaultParametersOptions,
|
|
7
|
+
FirebaseEventOptions,
|
|
8
|
+
FirebaseScreenOptions,
|
|
9
|
+
FirebaseAnalyticsIosMessage
|
|
10
|
+
} from "../types";
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Sets Firebase Analytics collection enabled or disabled
|
|
14
|
+
* @param options - Options for setting analytics collection
|
|
15
|
+
*/
|
|
16
|
+
export const setCollection = (options: FirebaseAnalyticsCollectionOptions): void => {
|
|
17
|
+
if (["ANDROID_APP", "IOS_APP"].includes(platform)) {
|
|
18
|
+
const { enabled } = options;
|
|
19
|
+
|
|
20
|
+
if (platform === "IOS_APP" && webToNativeIos) {
|
|
21
|
+
webToNativeIos.postMessage({
|
|
22
|
+
action: "setFirebaseAnalyticsCollection",
|
|
23
|
+
enabled,
|
|
24
|
+
} as FirebaseAnalyticsIosMessage);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
platform === "ANDROID_APP" && webToNative.setFirebaseAnalyticsCollection(enabled);
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Sets Firebase user ID
|
|
33
|
+
* @param options - Options for setting user ID
|
|
34
|
+
*/
|
|
35
|
+
export const setUserId = (options: FirebaseUserIdOptions): void => {
|
|
36
|
+
if (["ANDROID_APP", "IOS_APP"].includes(platform)) {
|
|
37
|
+
const { userId } = options;
|
|
38
|
+
|
|
39
|
+
if (platform === "IOS_APP" && webToNativeIos) {
|
|
40
|
+
webToNativeIos.postMessage({
|
|
41
|
+
action: "setFirebaseUserId",
|
|
42
|
+
userId,
|
|
43
|
+
} as FirebaseAnalyticsIosMessage);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
platform === "ANDROID_APP" && webToNative.setFirebaseUserId(userId);
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Sets a Firebase user property
|
|
52
|
+
* @param options - Options for setting user property
|
|
53
|
+
*/
|
|
54
|
+
export const setUserProperty = (options: FirebaseUserPropertyOptions): void => {
|
|
55
|
+
if (["ANDROID_APP", "IOS_APP"].includes(platform)) {
|
|
56
|
+
const { key, value } = options;
|
|
57
|
+
|
|
58
|
+
if (platform === "IOS_APP" && webToNativeIos) {
|
|
59
|
+
webToNativeIos.postMessage({
|
|
60
|
+
action: "setFirebaseUserProp",
|
|
61
|
+
key,
|
|
62
|
+
value,
|
|
63
|
+
} as FirebaseAnalyticsIosMessage);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
platform === "ANDROID_APP" && webToNative.setFirebaseUserProp(key, value);
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Sets default event parameters for Firebase Analytics
|
|
72
|
+
* @param options - Options for setting default parameters
|
|
73
|
+
*/
|
|
74
|
+
export const setDefaultEventParameters = (options: FirebaseDefaultParametersOptions): void => {
|
|
75
|
+
if (["ANDROID_APP", "IOS_APP"].includes(platform)) {
|
|
76
|
+
const { parameters } = options;
|
|
77
|
+
|
|
78
|
+
if (platform === "IOS_APP" && webToNativeIos) {
|
|
79
|
+
webToNativeIos.postMessage({
|
|
80
|
+
action: "setFirebaseDefaultParam",
|
|
81
|
+
parameters,
|
|
82
|
+
} as FirebaseAnalyticsIosMessage);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
platform === "ANDROID_APP" && webToNative.setFirebaseDefaultParam(parameters);
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Logs a Firebase Analytics event
|
|
91
|
+
* @param options - Options for logging an event
|
|
92
|
+
*/
|
|
93
|
+
export const logEvent = (options: FirebaseEventOptions): void => {
|
|
94
|
+
if (["ANDROID_APP", "IOS_APP"].includes(platform)) {
|
|
95
|
+
const { eventName, parameters } = options;
|
|
96
|
+
|
|
97
|
+
if (platform === "IOS_APP" && webToNativeIos) {
|
|
98
|
+
webToNativeIos.postMessage({
|
|
99
|
+
action: "logFirebaseEvent",
|
|
100
|
+
eventName,
|
|
101
|
+
parameters,
|
|
102
|
+
} as FirebaseAnalyticsIosMessage);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
platform === "ANDROID_APP" && webToNative.logFirebaseEvent(eventName, parameters);
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Logs a Firebase Analytics screen view
|
|
111
|
+
* @param options - Options for logging a screen view
|
|
112
|
+
*/
|
|
113
|
+
export const logScreen = (options: FirebaseScreenOptions): void => {
|
|
114
|
+
if (["ANDROID_APP", "IOS_APP"].includes(platform)) {
|
|
115
|
+
const { screenName, screenClass } = options;
|
|
116
|
+
|
|
117
|
+
if (platform === "IOS_APP" && webToNativeIos) {
|
|
118
|
+
webToNativeIos.postMessage({
|
|
119
|
+
action: "logFirebaseScreenView",
|
|
120
|
+
screenName,
|
|
121
|
+
screenClass,
|
|
122
|
+
} as FirebaseAnalyticsIosMessage);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
platform === "ANDROID_APP" && webToNative.logFirebaseScreenView(screenName, screenClass);
|
|
126
|
+
}
|
|
127
|
+
};
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { platform, webToNative, webToNativeIos, registerCb } from "../../utills";
|
|
2
|
+
import {
|
|
3
|
+
FirebaseTopicSubscriptionOptions,
|
|
4
|
+
FirebaseTopicUnsubscriptionOptions,
|
|
5
|
+
FirebaseFCMTokenOptions,
|
|
6
|
+
FirebaseFCMTokenResponse,
|
|
7
|
+
FirebaseMessagingIosMessage
|
|
8
|
+
} from "../types";
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Subscribes to a Firebase Cloud Messaging topic
|
|
12
|
+
* @param options - Options for topic subscription
|
|
13
|
+
*/
|
|
14
|
+
export const subscribe = (options: FirebaseTopicSubscriptionOptions): void => {
|
|
15
|
+
if (["ANDROID_APP", "IOS_APP"].includes(platform)) {
|
|
16
|
+
const { toTopic } = options;
|
|
17
|
+
|
|
18
|
+
if (platform === "IOS_APP" && webToNativeIos) {
|
|
19
|
+
webToNativeIos.postMessage({
|
|
20
|
+
action: "firebaseSubscribeToTopic",
|
|
21
|
+
topic: toTopic,
|
|
22
|
+
} as FirebaseMessagingIosMessage);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
platform === "ANDROID_APP" && webToNative.subscribeToTopic(toTopic);
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Unsubscribes from a Firebase Cloud Messaging topic
|
|
31
|
+
* @param options - Options for topic unsubscription
|
|
32
|
+
*/
|
|
33
|
+
export const unsubscribe = (options: FirebaseTopicUnsubscriptionOptions): void => {
|
|
34
|
+
if (["ANDROID_APP", "IOS_APP"].includes(platform)) {
|
|
35
|
+
const { fromTopic } = options;
|
|
36
|
+
|
|
37
|
+
if (platform === "IOS_APP" && webToNativeIos) {
|
|
38
|
+
webToNativeIos.postMessage({
|
|
39
|
+
action: "firebaseUnsubscribeFromTopic",
|
|
40
|
+
topic: fromTopic,
|
|
41
|
+
} as FirebaseMessagingIosMessage);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
platform === "ANDROID_APP" && webToNative.unsubscribeFromTopic(fromTopic);
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Gets the Firebase Cloud Messaging token
|
|
50
|
+
* @param options - Options for getting FCM token
|
|
51
|
+
*/
|
|
52
|
+
export const getFCMToken = (options: FirebaseFCMTokenOptions): void => {
|
|
53
|
+
if (["ANDROID_APP", "IOS_APP"].includes(platform)) {
|
|
54
|
+
const { callback } = options;
|
|
55
|
+
registerCb((response: FirebaseFCMTokenResponse) => {
|
|
56
|
+
const { type } = response;
|
|
57
|
+
if (type === "getFCMToken") {
|
|
58
|
+
if (platform === "ANDROID_APP") {
|
|
59
|
+
response.token = response.fcm_registration_token;
|
|
60
|
+
}
|
|
61
|
+
callback && callback(response);
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
if (platform === "IOS_APP" && webToNativeIos) {
|
|
66
|
+
webToNativeIos.postMessage({
|
|
67
|
+
action: "getFCMToken",
|
|
68
|
+
} as FirebaseMessagingIosMessage);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
platform === "ANDROID_APP" && webToNative.getRegistrationToken();
|
|
72
|
+
}
|
|
73
|
+
};
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
// Common Firebase types
|
|
2
|
+
|
|
3
|
+
export interface FirebaseAnalyticsCollectionOptions {
|
|
4
|
+
enabled: boolean;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
export interface FirebaseUserIdOptions {
|
|
8
|
+
userId: string;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export interface FirebaseUserPropertyOptions {
|
|
12
|
+
key: string;
|
|
13
|
+
value: string;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export interface FirebaseEventParameters {
|
|
17
|
+
[key: string]: any;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export interface FirebaseDefaultParametersOptions {
|
|
21
|
+
parameters: FirebaseEventParameters;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export interface FirebaseEventOptions {
|
|
25
|
+
eventName: string;
|
|
26
|
+
parameters?: FirebaseEventParameters;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export interface FirebaseScreenOptions {
|
|
30
|
+
screenName: string;
|
|
31
|
+
screenClass?: string;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export interface FirebaseAnalyticsIosMessage {
|
|
35
|
+
action: string;
|
|
36
|
+
enabled?: boolean;
|
|
37
|
+
userId?: string;
|
|
38
|
+
key?: string;
|
|
39
|
+
value?: string;
|
|
40
|
+
parameters?: FirebaseEventParameters;
|
|
41
|
+
eventName?: string;
|
|
42
|
+
screenName?: string;
|
|
43
|
+
screenClass?: string;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
// Firebase Messaging types
|
|
47
|
+
|
|
48
|
+
export interface FirebaseTopicSubscriptionOptions {
|
|
49
|
+
toTopic: string;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export interface FirebaseTopicUnsubscriptionOptions {
|
|
53
|
+
fromTopic: string;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
export interface FirebaseFCMTokenResponse {
|
|
57
|
+
type: string;
|
|
58
|
+
token?: string;
|
|
59
|
+
fcm_registration_token?: string;
|
|
60
|
+
[key: string]: any;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export interface FirebaseFCMTokenCallback {
|
|
64
|
+
(response: FirebaseFCMTokenResponse): void;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export interface FirebaseFCMTokenOptions {
|
|
68
|
+
callback?: FirebaseFCMTokenCallback;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
export interface FirebaseMessagingIosMessage {
|
|
72
|
+
action: string;
|
|
73
|
+
topic?: string;
|
|
74
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { platform, webToNativeIos } from "../utills";
|
|
2
|
+
import { HapticsOptions, HapticsIosMessage } from "./types";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Triggers a haptic feedback effect
|
|
6
|
+
* @param options - Options for the haptic effect
|
|
7
|
+
*/
|
|
8
|
+
export const trigger = (options: HapticsOptions = {}): void => {
|
|
9
|
+
if (["ANDROID_APP", "IOS_APP"].includes(platform)) {
|
|
10
|
+
if (platform === "IOS_APP" && webToNativeIos) {
|
|
11
|
+
webToNativeIos.postMessage({
|
|
12
|
+
action: "haptikEffect",
|
|
13
|
+
effect: options.effect,
|
|
14
|
+
} as HapticsIosMessage);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
};
|