From b8a6ce1024fcbb9753dfe404707c9944d6367365 Mon Sep 17 00:00:00 2001 From: Ivan Kudinov Date: Mon, 14 Jul 2025 17:40:03 +0300 Subject: [PATCH] CCS-106502 add iOS.allowSwipeNavigation method --- package.json | 4 ++-- src/lib/client/index.ts | 18 ++++++++++++++++++ src/lib/routing/index.ts | 23 +++++++++++++++++++++-- src/types/bridge.ts | 2 ++ src/types/events.ts | 1 + yarn.lock | 8 ++++---- 6 files changed, 48 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index 5eed681..f4930c7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@expressms/smartapp-sdk", - "version": "1.13.0-alpha.2", + "version": "1.13.0-alpha.9", "description": "Smartapp SDK", "main": "build/main/index.js", "typings": "build/main/index.d.ts", @@ -38,7 +38,7 @@ "typescript": "^4.9.5" }, "dependencies": { - "@expressms/smartapp-bridge": "1.4.1" + "@expressms/smartapp-bridge": "1.4.5" }, "files": [ "build/main", diff --git a/src/lib/client/index.ts b/src/lib/client/index.ts index 9eef0f6..3d31f1d 100644 --- a/src/lib/client/index.ts +++ b/src/lib/client/index.ts @@ -230,6 +230,23 @@ const getSmartAppList = (): Promise => { .then(event => event as GetSmartAppListResponse) } +/** + * Hide recieved data in logs + * @returns Promise that'll be fullfilled + */ +const hideRecievedData = (): Promise => { + if (!bridge) return Promise.reject(ERROR_CODES.NO_BRIDGE) + + bridge.hideRecvData() + + return bridge + .sendClientEvent({ + method: METHODS.HIDE_RECV_DATA, + params: {}, + }) + .then(event => event as StatusResponse) +} + export { openClientSettings, getChats, @@ -246,4 +263,5 @@ export { cleanCache, getAppVisibility, getSmartAppList, + hideRecievedData, } diff --git a/src/lib/routing/index.ts b/src/lib/routing/index.ts index 6453b8b..04b58a4 100644 --- a/src/lib/routing/index.ts +++ b/src/lib/routing/index.ts @@ -1,5 +1,5 @@ -import bridge from "@expressms/smartapp-bridge" -import { LOCATION, METHODS } from '../../types' +import bridge from '@expressms/smartapp-bridge' +import { ERROR_CODES, LOCATION, METHODS, StatusResponse } from '../../types' export const routingChanged = (isRoot: boolean) => { return bridge?.sendClientEvent({ @@ -42,3 +42,22 @@ export const exitSmartAppToCatalog = () => { params: { appId: '' }, }) } + +/** + * Switch on/off swipe navigation in WkWebView + * @param allowed Enable/disable navigation + */ +const allowSwipeNavigation = (allowed: boolean): Promise => { + if (!bridge) return Promise.reject(ERROR_CODES.NO_BRIDGE) + + return bridge + .sendClientEvent({ + method: METHODS.ALLOW_IOS_SWIPE_NAVIGATION, + params: { allowed }, + }) + .then(event => event as StatusResponse) +} + +export const iOS = { + allowSwipeNavigation, +} diff --git a/src/types/bridge.ts b/src/types/bridge.ts index 6e7b50c..e3c4e2c 100644 --- a/src/types/bridge.ts +++ b/src/types/bridge.ts @@ -53,6 +53,8 @@ export enum METHODS { READ_BLE_GATT_CHARACTERISTIC = 'read_ble_gatt_characteristic', READ_NFC_TAG = 'read_nfc_tag', WRITE_NFC_TAG = 'write_nfc_tag', + ALLOW_IOS_SWIPE_NAVIGATION = 'allow_ios_swipe_navigation', + HIDE_RECV_DATA = 'hide_recv_data', } export enum STATUS { diff --git a/src/types/events.ts b/src/types/events.ts index 1385241..5c0cff3 100644 --- a/src/types/events.ts +++ b/src/types/events.ts @@ -4,6 +4,7 @@ export enum SubscriptionEventType { LAYOUT_TYPE = 'layout_type', APP_VISIBILITY = 'app_visibility', SMARTAPP_LIST = 'smartapp_list', + IOS_SWIPE = 'ios_swipe', } export type SubscriptionPayload = { diff --git a/yarn.lock b/yarn.lock index 94bc928..5ff8458 100644 --- a/yarn.lock +++ b/yarn.lock @@ -43,10 +43,10 @@ minimatch "^3.0.4" strip-json-comments "^3.1.1" -"@expressms/smartapp-bridge@1.4.1": - version "1.4.1" - resolved "https://registry.yarnpkg.com/@expressms/smartapp-bridge/-/smartapp-bridge-1.4.1.tgz#b3fb2270459713eb6a7a147b85e8693ecaa9d45e" - integrity sha512-ZvW21sLQZSBfB1IB901N1EvPCEFmJeglT33JsrPo2rZO6xDJYuF0GA3T2mAVQXiflLEF05/JbcgTBeKRRewQAQ== +"@expressms/smartapp-bridge@1.4.5": + version "1.4.5" + resolved "https://registry.yarnpkg.com/@expressms/smartapp-bridge/-/smartapp-bridge-1.4.5.tgz#7324e87971e1d09742da69549edd0c67281749f1" + integrity sha512-AFhvkCbtMGR5o7355DsIik7iN64MlEWGGD7PUfruLJL25HKMHbGNH6P0N6kPSo8lGiudEAnyyg5uGAnUf8KQvw== dependencies: eventemitter3 "^4.0.7" lodash-es "^4.17.21"