@btsd/aitu-bridge 0.2.16 → 0.2.19

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/src/index.ts CHANGED
@@ -18,6 +18,7 @@ type GetItemType = (keyName: string) => Promise<string | null>;
18
18
  type ClearType = () => Promise<void>;
19
19
 
20
20
  type HeaderMenuItemClickHandlerType = (id: string) => Promise<void>;
21
+ type BackArrowClickHandlerType = () => Promise<void>;
21
22
 
22
23
  interface GetPhoneResponse {
23
24
  phone: string;
@@ -134,6 +135,10 @@ interface AituBridge {
134
135
  disableScreenCapture: () => Promise<{}>;
135
136
  setHeaderMenuItems: (items: Array<HeaderMenuItem>) => Promise<ResponseType>;
136
137
  setHeaderMenuItemClickHandler: (handler: HeaderMenuItemClickHandlerType) => void;
138
+ setCustomBackArrowMode: (enabled: boolean) => Promise<ResponseType>;
139
+ getCustomBackArrowMode: () => Promise<boolean>;
140
+ setCustomBackArrowVisible: (visible: boolean) => Promise<ResponseType>;
141
+ setCustomBackArrowOnClickHandler: (handler: BackArrowClickHandlerType) => void;
137
142
  }
138
143
 
139
144
  const invokeMethod = 'invoke';
@@ -156,6 +161,10 @@ const disableScreenCaptureMethod = 'disableScreenCapture';
156
161
  const setTabActiveHandlerMethod = 'setTabActiveHandler';
157
162
  const setHeaderMenuItemsMethod = 'setHeaderMenuItems';
158
163
  const setHeaderMenuItemClickHandlerMethod = 'setHeaderMenuItemClickHandler';
164
+ const setCustomBackArrowModeMethod = 'setCustomBackArrowMode';
165
+ const getCustomBackArrowModeMethod = 'getCustomBackArrowMode';
166
+ const setCustomBackArrowVisibleMethod = 'setCustomBackArrowVisible';
167
+ const setCustomBackArrowOnClickHandlerMethod = 'setCustomBackArrowOnClickHandler';
159
168
 
160
169
  const android = typeof window !== 'undefined' && (window as any).AndroidBridge;
161
170
  const ios = typeof window !== 'undefined' && (window as any).webkit && (window as any).webkit.messageHandlers;
@@ -477,7 +486,7 @@ const buildBridge = (): AituBridge => {
477
486
  subs.push(listener);
478
487
  }
479
488
 
480
- const setHeaderMenuItems = (items: Array<HeaderMenuItem>) => {
489
+ const setHeaderMenuItems = (reqId, items: Array<HeaderMenuItem>) => {
481
490
  if (items.length > MAX_HEADER_MENU_ITEMS_COUNT) {
482
491
  console.error('SetHeaderMenuItems: items count should not be more than ' + MAX_HEADER_MENU_ITEMS_COUNT);
483
492
  return;
@@ -486,10 +495,12 @@ const buildBridge = (): AituBridge => {
486
495
  const isAndroid = android && android[setHeaderMenuItemsMethod];
487
496
  const isIos = ios && ios[setHeaderMenuItemsMethod];
488
497
 
498
+ const itemsJsonArray = JSON.stringify(items);
499
+
489
500
  if (isAndroid) {
490
- android[setHeaderMenuItemsMethod](items);
501
+ android[setHeaderMenuItemsMethod](reqId, itemsJsonArray);
491
502
  } else if (isIos) {
492
- ios[setHeaderMenuItemsMethod].postMessage({ items });
503
+ ios[setHeaderMenuItemsMethod].postMessage({ reqId, itemsJsonArray });
493
504
  } else if (typeof window !== 'undefined') {
494
505
  console.log('--setHeaderMenuItems-isWeb');
495
506
  }
@@ -506,6 +517,56 @@ const buildBridge = (): AituBridge => {
506
517
  }
507
518
  }
508
519
 
520
+ const setCustomBackArrowMode = (reqId, enabled: boolean) => {
521
+ const isAndroid = android && android[setCustomBackArrowModeMethod];
522
+ const isIos = ios && ios[setCustomBackArrowModeMethod];
523
+
524
+ if (isAndroid) {
525
+ android[setCustomBackArrowModeMethod](reqId, enabled);
526
+ } else if (isIos) {
527
+ ios[setCustomBackArrowModeMethod].postMessage({ reqId, enabled });
528
+ } else if (typeof window !== 'undefined') {
529
+ console.log('--setCustomBackArrowMode-isWeb');
530
+ }
531
+ }
532
+
533
+ const getCustomBackArrowMode = (reqId) => {
534
+ const isAndroid = android && android[getCustomBackArrowModeMethod];
535
+ const isIos = ios && ios[getCustomBackArrowModeMethod];
536
+
537
+ if (isAndroid) {
538
+ android[getCustomBackArrowModeMethod](reqId);
539
+ } else if (isIos) {
540
+ ios[getCustomBackArrowModeMethod].postMessage({ reqId });
541
+ } else if (typeof window !== 'undefined') {
542
+ console.log('--getCustomBackArrowMode-isWeb');
543
+ }
544
+ }
545
+
546
+ const setCustomBackArrowVisible = (reqId, visible: boolean) => {
547
+ const isAndroid = android && android[setCustomBackArrowVisibleMethod];
548
+ const isIos = ios && ios[setCustomBackArrowVisibleMethod];
549
+
550
+ if (isAndroid) {
551
+ android[setCustomBackArrowVisibleMethod](reqId, visible);
552
+ } else if (isIos) {
553
+ ios[setCustomBackArrowVisibleMethod].postMessage({ reqId, visible });
554
+ } else if (typeof window !== 'undefined') {
555
+ console.log('--setCustomBackArrowVisible-isWeb');
556
+ }
557
+ }
558
+
559
+ const setCustomBackArrowOnClickHandler = (handler: BackArrowClickHandlerType) => {
560
+ const isAndroid = android && android[setCustomBackArrowOnClickHandlerMethod];
561
+ const isIos = ios && ios[setCustomBackArrowOnClickHandlerMethod];
562
+
563
+ if (isAndroid || isIos) {
564
+ (window as any).onAituBridgeBackArrowClick = handler;
565
+ } else if (typeof window !== 'undefined') {
566
+ console.log('--setCustomBackArrowOnClickHandler-isWeb');
567
+ }
568
+ }
569
+
509
570
  const invokePromise = promisifyInvoke(invoke, sub);
510
571
  const storagePromise = promisifyStorage(storage, sub);
511
572
  const getGeoPromise = promisifyMethod(getGeo, sub);
@@ -523,6 +584,9 @@ const buildBridge = (): AituBridge => {
523
584
  const enableScreenCapturePromise = promisifyMethod(enableScreenCapture, sub);
524
585
  const disableScreenCapturePromise = promisifyMethod(disableScreenCapture, sub);
525
586
  const setHeaderMenuItemsPromise = promisifyMethod(setHeaderMenuItems, sub);
587
+ const setCustomBackArrowModePromise = promisifyMethod(setCustomBackArrowMode, sub);
588
+ const getCustomBackArrowModePromise = promisifyMethod(getCustomBackArrowMode, sub);
589
+ const setCustomBackArrowVisiblePromise = promisifyMethod(setCustomBackArrowVisible, sub);
526
590
 
527
591
  return {
528
592
  version: String(LIB_VERSION),
@@ -554,7 +618,11 @@ const buildBridge = (): AituBridge => {
554
618
  enableScreenCapture: enableScreenCapturePromise,
555
619
  disableScreenCapture: disableScreenCapturePromise,
556
620
  setHeaderMenuItems: setHeaderMenuItemsPromise,
557
- setHeaderMenuItemClickHandler
621
+ setHeaderMenuItemClickHandler,
622
+ setCustomBackArrowMode: setCustomBackArrowModePromise,
623
+ getCustomBackArrowMode: getCustomBackArrowModePromise,
624
+ setCustomBackArrowVisible: setCustomBackArrowVisiblePromise,
625
+ setCustomBackArrowOnClickHandler,
558
626
  }
559
627
  }
560
628
 
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export const LIB_VERSION = "0.2.16";
1
+ export const LIB_VERSION = "0.2.19";