diff --git a/entry/src/main/ets/common/utils/AuthUtils.ts b/entry/src/main/ets/common/utils/AuthUtils.ts index 53774fd0ac379548f1e10ada747e7727f78b57de..002894319c48c49ef5aa75707a81be3e39ae0ce9 100644 --- a/entry/src/main/ets/common/utils/AuthUtils.ts +++ b/entry/src/main/ets/common/utils/AuthUtils.ts @@ -15,13 +15,15 @@ import userAuth from '@ohos.userIAM.userAuth'; import UIExtensionContentSession from '@ohos.app.ability.UIExtensionContentSession'; -import Constants from '../vm/Constants'; +import Constants, { TipCode } from '../vm/Constants'; import LogUtils from './LogUtils'; +import JSON from '@ohos.util.json'; const TAG = 'AuthUtils'; export default class AuthUtils { private static authUtilsInstance: AuthUtils; + private widgetContextId: bigint = BigInt(AppStorage.get('widgetContextId')) ?? BigInt(-1); public static getInstance(): AuthUtils { if (!AuthUtils.authUtilsInstance) { @@ -30,16 +32,19 @@ export default class AuthUtils { return AuthUtils.authUtilsInstance; } - sendNotice(cmd: string, type: Array): void { + sendNotice(cmd: string, type: Array, tipCode: TipCode = TipCode.NORMAL): void { try { const eventData = { - widgetContextId: AppStorage.get('widgetContextId'), + widgetContextId: this.widgetContextId, event: cmd, version: Constants.noticeVersion, payload: { - type: type + type: type, + tipCode: tipCode, } }; + LogUtils.info(TAG, 'widgetContextId: ' + this.widgetContextId); + LogUtils.info(TAG, 'tipCode: ' + tipCode); const jsonEventData = JSON.stringify(eventData); LogUtils.info(TAG, 'sendNotice start eventData: ' + jsonEventData); userAuth.sendNotice(userAuth.NoticeType.WIDGET_NOTICE, jsonEventData); diff --git a/entry/src/main/ets/common/vm/Constants.ts b/entry/src/main/ets/common/vm/Constants.ts index 2cad77f3d1675e47740535a05a33d0131dfa830c..c99fbb29c2286ff928a8e4df061f7adc7db42969 100644 --- a/entry/src/main/ets/common/vm/Constants.ts +++ b/entry/src/main/ets/common/vm/Constants.ts @@ -48,6 +48,8 @@ export default class Constants { static noticeEventWidgetLoaded = 'EVENT_AUTH_WIDGET_LOADED'; static noticeEventWidgetReleased = 'EVENT_AUTH_WIDGET_RELEASED'; static noticeEventUserNavigation = 'EVENT_AUTH_USER_NAVIGATION'; + static noticeEventProcessTerminate = 'EVENT_AUTH_PROCESS_TERMINATE'; + static noticeEventAuthSendTip = 'EVENT_AUTH_SEND_TIP'; static numKeyBoard : NumKeyBoardItem[] = [ { @@ -149,7 +151,9 @@ export interface CmdData { remainAttempts: number, lockoutDuration: number, result: number, - sensorInfo?: string + sensorInfo?: string, + tipType?: number, + tipInfo?: Uint8Array } export interface CmdType { @@ -173,6 +177,7 @@ export interface WantParams { navigationButtonText?: string, windowModeType: string, cmd: CmdType[], + widgetContextIdStr?: string, } export interface WidgetCommand { @@ -189,4 +194,14 @@ export enum CmdNotifyEvents { CMD_NOTIFY_AUTH_START = 'CMD_NOTIFY_AUTH_START', CMD_NOTIFY_AUTH_RESULT = 'CMD_NOTIFY_AUTH_RESULT', CMD_NOTIFY_AUTH_TIP = 'CMD_NOTIFY_AUTH_TIP' -} \ No newline at end of file +} + +export enum TipCode { + NORMAL = -1, + // 超时 + TIMEOUT = 2, + // 临时冻结 + TEMPORARILY_LOCKED = 3, + // 永久冻结 + PERMANENTLY_LOCKED = 4, +} diff --git a/entry/src/main/ets/extensionability/UserAuthAbility.ts b/entry/src/main/ets/extensionability/UserAuthAbility.ts index 36bb785a9c722cad1f4c10864e31adde6e67e2ff..7390e63d8bb0f0984e97b2671a4772823c8c1290 100644 --- a/entry/src/main/ets/extensionability/UserAuthAbility.ts +++ b/entry/src/main/ets/extensionability/UserAuthAbility.ts @@ -17,7 +17,8 @@ import LogUtils from '../common/utils/LogUtils'; import UserAuthExtensionAbility from '@ohos.app.ability.UserAuthExtensionAbility'; import WindowPrivacyUtils from '../common/utils/WindowPrivacyUtils'; import UIExtensionContentSession from '@ohos.app.ability.UIExtensionContentSession'; -import { WantParams } from '../common/vm/Constants'; +import Constants, { WantParams } from '../common/vm/Constants'; +import AuthUtils from '../common/utils/AuthUtils'; const TAG = 'UserAuthAbility'; // The current interface only support string type @@ -63,6 +64,7 @@ export default class UserAuthAbility extends UserAuthExtensionAbility { onSessionDestroy(session): void { LogUtils.info(TAG, 'UserAuthExtensionAbility onSessionDestroy'); + AuthUtils.getInstance().sendNotice(Constants.noticeEventProcessTerminate, [Constants.noticeTypePin]); WindowPrivacyUtils.setWindowPrivacyMode(session, false); } } diff --git a/entry/src/main/ets/pages/Index.ets b/entry/src/main/ets/pages/Index.ets index bf88e8ef2445e0978d673886c015f6d7601715b8..09bc862064560cbeb4ba1b467f8e88de01b9ea52 100644 --- a/entry/src/main/ets/pages/Index.ets +++ b/entry/src/main/ets/pages/Index.ets @@ -215,7 +215,9 @@ struct Index { return userAuth.UserAuthType.PIN; } }) - AppStorage.setOrCreate('widgetContextId', resultInfo?.widgetContextId); + AppStorage.setOrCreate('widgetContextId', resultInfo?.widgetContextIdStr); + LogUtils.info(TAG, '==============widgetContextId: ' + resultInfo?.widgetContextId); + LogUtils.info(TAG, '==============widgetContextIdStr: ' + resultInfo?.widgetContextIdStr); this.authType = newType; this.type = resultInfo?.type; this.windowModeType = resultInfo?.windowModeType;