diff --git a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/AppScope/app.json5 b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/AppScope/app.json5 index d5fac8aeb4943c32c130425f527425aabe391720..3cc0ede72ee2b63ce5f68c62e103f4b855635bae 100644 --- a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/AppScope/app.json5 +++ b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/AppScope/app.json5 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2023 Huawei Device Co., Ltd. + * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the 'License'); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at diff --git a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/README_zh.md b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/README_zh.md index 8bc1d971120226b1dad72e6969e8702cfd18a655..c3d6c8b9dcd4826131df1201ebb50eae947993bf 100644 --- a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/README_zh.md +++ b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/README_zh.md @@ -111,6 +111,9 @@ entry/src/main/ets/ │   └── EntryAbility.ts //router事件跳转到指定UIAbility逻辑 ├── entryformability │   └── EntryFormAbility.ts //卡片业务逻辑模块,提供卡片创建、销毁、刷新等生命周期回调。 +├── funpages +│   ├── FunA.ets //router调起ability页面A +│   └── FunB.ets //router调起ability页面B ├── jscardentryability │   └── JsCardEntryAbility.ts //JS卡片UIAbility实例 ├── jscardformability @@ -119,8 +122,6 @@ entry/src/main/ets/ │   └── pages │   └── NextRefreshTimeCard.ets //固定时间后刷新卡片页面 ├── pages -│   ├── FunA.ets //router调起ability页面A -│   ├── FunB.ets //router调起ability页面B │   └── Index.ets //应用的默认页面 ├── persistentdataformability │   └── PersistentDataFormAbility.ts //持久化数据下代理刷新卡片业务逻辑模块 @@ -222,11 +223,14 @@ entry/src/main/ets/ ### 约束与限制 -1.本示例仅支持标准系统上运行,支持设备:RK3568。 +1. 本示例支持标准系统上运行,支持设备:RK3568; + +2. 本示例支持API14版本SDK,版本号:5.0.2.57; + +3. 本示例已支持使DevEco Studio 5.0.1 Release (构建版本:5.0.5.306,构建 2024年12月12日)编译运行; -2.本示例为Stage模型,已适配API version 11版本SDK,版本号:4.1.3.1 +4. 高等级APL特殊签名说明:无; -3.本示例需要使用DevEco Studio 3.1.1 Release (Build Version: 3.1.0.501, built on June 20, 2023)及以上版本才可编译运行。 ### 下载 @@ -235,7 +239,7 @@ entry/src/main/ets/ ``` git init git config core.sparsecheckout true -echo code/BasicFeature/ApplicationModels/StageServiceWidgetCards/ > .git/info/sparse-checkout +echo code/DocsSample/ApplicationModels/StageServiceWidgetCards/ > .git/info/sparse-checkout git remote add origin https://gitee.com/openharmony/applications_app_samples.git git pull origin master ``` diff --git a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/build-profile.json5 b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/build-profile.json5 index 4f37544e2c3f924c12fb81261eba246375341ad8..51fd60e93a3f99e1132cd07e1214cc09275b1d70 100644 --- a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/build-profile.json5 +++ b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/build-profile.json5 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022-2023 Huawei Device Co., Ltd. + * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -19,12 +19,14 @@ { "name": "default", "signingConfig": "default", - "compileSdkVersion": 11, - "compatibleSdkVersion": 11, + "compileSdkVersion": 14, + "targetSdkVersion": 14, + "compatibleSdkVersion": 14, "runtimeOS": "OpenHarmony" } ], "signingConfigs": [ + ] }, "modules": [ diff --git a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/build-profile.json5 b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/build-profile.json5 index 86224cda6f74439561b4e5f3b822bc27c7c69579..0ac15214fb3884dddee66cad9a70b046fec6a1ff 100644 --- a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/build-profile.json5 +++ b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/build-profile.json5 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022-2023 Huawei Device Co., Ltd. + * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at diff --git a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/hvigorfile.ts b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/hvigorfile.ts index 80e4ec5b81689f238c34614b167a0b9e9c83e8d9..f9973af5eb59e35539012ef41c858ede21a4e1c9 100644 --- a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/hvigorfile.ts +++ b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/hvigorfile.ts @@ -1,2 +1,17 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + // Script for compiling build behavior. It is built in the build plug-in and cannot be modified currently. export { hapTasks } from '@ohos/hvigor-ohos-plugin'; diff --git a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/oh-package.json5 b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/oh-package.json5 deleted file mode 100644 index 60744fdbc79d1e21f9e40bd00955aa195ba84e22..0000000000000000000000000000000000000000 --- a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/oh-package.json5 +++ /dev/null @@ -1,10 +0,0 @@ -{ - "license": "", - "devDependencies": {}, - "author": "", - "name": "entry", - "description": "Please describe the basic information.", - "main": "", - "version": "1.0.0", - "dependencies": {} -} diff --git a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/attranimation/pages/AttrAnimationCard.ets b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/attranimation/pages/AttrAnimationCard.ets index 5f4f532e30146f4484b88798cc78515246b66c9d..81733e8382addcb23f2506348ef1cc1a2636af62 100644 --- a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/attranimation/pages/AttrAnimationCard.ets +++ b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/attranimation/pages/AttrAnimationCard.ets @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022-2023 Huawei Device Co., Ltd. + * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at diff --git a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/customcanvasdrawing/pages/CustomCanvasDrawingCard.ets b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/customcanvasdrawing/pages/CustomCanvasDrawingCard.ets index f14e23596ddc0585232ed4a2f1642bfa65919a32..82cf03d5f0a1078555920199071f3a90b5d77b03 100644 --- a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/customcanvasdrawing/pages/CustomCanvasDrawingCard.ets +++ b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/customcanvasdrawing/pages/CustomCanvasDrawingCard.ets @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022-2023 Huawei Device Co., Ltd. + * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at diff --git a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/entryability/EntryAbility.ts b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/entryability/EntryAbility.ts index d193b7a4701cd660affe53de0eb01639e9ab1e05..03faaeed56172706da145b6a39fec3e2c8ac319e 100644 --- a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/entryability/EntryAbility.ts +++ b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/entryability/EntryAbility.ts @@ -1,5 +1,5 @@ /* - * Copyright (c) 2023 Huawei Device Co., Ltd. + * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the 'License'); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -13,34 +13,36 @@ * limitations under the License. */ -import type AbilityConstant from '@ohos.app.ability.AbilityConstant'; -import hilog from '@ohos.hilog'; -import UIAbility from '@ohos.app.ability.UIAbility'; -import type Want from '@ohos.app.ability.Want'; -import type window from '@ohos.window'; +import { AbilityConstant, UIAbility, Want } from '@kit.AbilityKit'; +import { window } from '@kit.ArkUI'; +import { hilog } from '@kit.PerformanceAnalysisKit'; const TAG: string = 'EntryAbility'; const DOMAIN_NUMBER: number = 0xFF00; export default class EntryAbility extends UIAbility { - private selectPage: string = ''; + private selectPage: string = 'funA'; private currentWindowStage: window.WindowStage | null = null; onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { // 获取router事件中传递的targetPage参数 hilog.info(DOMAIN_NUMBER, TAG, `Ability onCreate, ${JSON.stringify(want)}`); - if (want.parameters !== undefined) { - let params: Record = JSON.parse(JSON.stringify(want.parameters)); - this.selectPage = params.targetPage; + if (want?.parameters?.params) { + // want.parameters.params 对应 postCardAction() 中 params 内容 + let params: Record = JSON.parse(want.parameters.params as string); + this.selectPage = params.targetPage as string; + hilog.info(DOMAIN_NUMBER, TAG, `onCreate selectPage: ${this.selectPage}`); } } // 如果UIAbility已在后台运行,在收到Router事件后会触发onNewWant生命周期回调 onNewWant(want: Want, launchParam: AbilityConstant.LaunchParam): void { hilog.info(DOMAIN_NUMBER, TAG, `onNewWant Want: ${JSON.stringify(want)}`); - if (want.parameters?.params !== undefined) { - let params: Record = JSON.parse(JSON.stringify(want.parameters?.params)); - this.selectPage = params.targetPage; + if (want?.parameters?.params) { + // want.parameters.params 对应 postCardAction() 中 params 内容 + let params: Record = JSON.parse(want.parameters.params as string); + this.selectPage = params.targetPage as string; + hilog.info(DOMAIN_NUMBER, TAG, `onNewWant selectPage: ${this.selectPage}`); } if (this.currentWindowStage !== null) { this.onWindowStageCreate(this.currentWindowStage); @@ -53,10 +55,10 @@ export default class EntryAbility extends UIAbility { // 根据传递的targetPage不同,选择拉起不同的页面 switch (this.selectPage) { case 'funA': - targetPage = 'pages/FunA'; + targetPage = 'funpages/FunA'; break; case 'funB': - targetPage = 'pages/FunB'; + targetPage = 'funpages/FunB'; break; default: targetPage = 'pages/Index'; diff --git a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/entryformability/EntryFormAbility.ts b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/entryformability/EntryFormAbility.ts index 312f4f9173272abba34aa0088ca580502b52abab..65c43738c056e903d1a50e0322cc5fa9dd2799e3 100644 --- a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/entryformability/EntryFormAbility.ts +++ b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/entryformability/EntryFormAbility.ts @@ -1,5 +1,5 @@ /* - * Copyright (c) 2023 Huawei Device Co., Ltd. + * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the 'License'); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -13,23 +13,46 @@ * limitations under the License. */ -import formInfo from '@ohos.app.form.formInfo'; -import formBindingData from '@ohos.app.form.formBindingData'; -import FormExtensionAbility from '@ohos.app.form.FormExtensionAbility'; -import formProvider from '@ohos.app.form.formProvider'; -import hilog from '@ohos.hilog'; -import type Want from '@ohos.app.ability.Want'; +import { formBindingData, FormExtensionAbility, formInfo, formProvider } from '@kit.FormKit'; +import { Configuration, Want } from '@kit.AbilityKit'; +import { BusinessError } from '@kit.BasicServicesKit'; +import { hilog } from '@kit.PerformanceAnalysisKit'; const TAG: string = 'EntryFormAbility'; const DOMAIN_NUMBER: number = 0xFF00; export default class EntryFormAbility extends FormExtensionAbility { onAddForm(want: Want): formBindingData.FormBindingData { + hilog.info(DOMAIN_NUMBER, TAG, '[EntryFormAbility] onAddForm'); + hilog.info(DOMAIN_NUMBER, TAG, want.parameters?.[formInfo.FormParam.NAME_KEY] as string); // Called to return a FormBindingData object. let formData = {}; return formBindingData.createFormBindingData(formData); } + onCastToNormalForm(formId: string): void { + // 使用方将临时卡片转换为常态卡片触发,提供方需要做相应的处理 + hilog.info(DOMAIN_NUMBER, TAG, '[EntryFormAbility] onCastToNormalForm'); + } + + onUpdateForm(formId: string): void { + // 若卡片支持定时更新/定点更新/卡片使用方主动请求更新功能,则提供方需要重写该方法以支持数据更新 + hilog.info(DOMAIN_NUMBER, TAG, '[EntryFormAbility] onUpdateForm'); + let obj: Record = { + 'title': 'titleOnUpdateForm', + 'detail': 'detailOnUpdateForm' + }; + let formData: formBindingData.FormBindingData = formBindingData.createFormBindingData(obj); + formProvider.updateForm(formId, formData).catch((error: BusinessError) => { + hilog.info(DOMAIN_NUMBER, TAG, '[EntryFormAbility] updateForm, error:' + JSON.stringify(error)); + }); + } + + onChangeFormVisibility(newStatus: Record): void { + // 使用方发起可见或者不可见通知触发,提供方需要做相应的处理,仅系统应用生效 + hilog.info(DOMAIN_NUMBER, TAG, '[EntryFormAbility] onChangeFormVisibility'); + } + onFormEvent(formId: string, message: string): void { // Called when a specified message event defined by the form provider is triggered. hilog.info(DOMAIN_NUMBER, TAG, `FormAbility onFormEvent, formId = ${formId}, message: ${JSON.stringify(message)}`); @@ -48,6 +71,19 @@ export default class EntryFormAbility extends FormExtensionAbility { }); } + onRemoveForm(formId: string): void { + // 删除卡片实例数据 + hilog.info(DOMAIN_NUMBER, TAG, '[EntryFormAbility] onRemoveForm'); + // 删除之前持久化的卡片实例数据 + // 此接口请根据实际情况实现,具体请参考:FormExtAbility Stage模型卡片实例 + } + + onConfigurationUpdate(config: Configuration) { + // 当前formExtensionAbility存活时更新系统配置信息时触发的回调。 + // 需注意:formExtensionAbility创建后10秒内无操作将会被清理。 + hilog.info(DOMAIN_NUMBER, TAG, '[EntryFormAbility] onConfigurationUpdate:' + JSON.stringify(config)); + } + onAcquireFormState(want: Want): formInfo.FormState { // Called to return a {@link FormState} object. return formInfo.FormState.READY; diff --git a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/pages/FunA.ets b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/funpages/FunA.ets similarity index 93% rename from code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/pages/FunA.ets rename to code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/funpages/FunA.ets index 747dda885f6ab971024abe7d1f6f5235b3cca0e3..49168219f5bd83f9ce5b2e00fa12825705daa40e 100644 --- a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/pages/FunA.ets +++ b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/funpages/FunA.ets @@ -1,46 +1,46 @@ -/* - * Copyright (c) 2023 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the 'License'); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an 'AS IS' BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -@Entry -@Component -struct FunA { - build() { - Column() { - Row() { - Text(($r('app.string.ButtonA_label'))) - .fontSize(24) - .fontWeight(FontWeight.Bold) - .textAlign(TextAlign.Start) - .margin({ top: 12, bottom: 11, right: 24, left: 24 }) - } - .width('100%') - .height(56) - .justifyContent(FlexAlign.Start) - - Image($r('app.media.pic_empty')) - .width(120) - .height(120) - .margin({ top: 224 }) - - Text($r('app.string.NoContentAvailable')) - .fontSize(14) - .fontColor($r('app.color.text_color')) - .opacity(0.4) - .margin({ top: 8, bottom: 317, right: 152, left: 152 }) - } - .width('100%') - .height('100%') - } +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the 'License'); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an 'AS IS' BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@Entry +@Component +struct FunA { + build() { + Column() { + Row() { + Text(($r('app.string.ButtonA_label'))) + .fontSize(24) + .fontWeight(FontWeight.Bold) + .textAlign(TextAlign.Start) + .margin({ top: 12, bottom: 11, right: 24, left: 24 }) + } + .width('100%') + .height(56) + .justifyContent(FlexAlign.Start) + + Image($r('app.media.pic_empty')) + .width(120) + .height(120) + .margin({ top: 224 }) + + Text($r('app.string.NoContentAvailable')) + .fontSize(14) + .fontColor($r('app.color.text_color')) + .opacity(0.4) + .margin({ top: 8, bottom: 317, right: 152, left: 152 }) + } + .width('100%') + .height('100%') + } } \ No newline at end of file diff --git a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/pages/FunB.ets b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/funpages/FunB.ets similarity index 93% rename from code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/pages/FunB.ets rename to code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/funpages/FunB.ets index 99a7b349a8d307ea4cca42b2bbd99dc52b960367..bd31315af956923b870b605c2344f3a6df0f18b8 100644 --- a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/pages/FunB.ets +++ b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/funpages/FunB.ets @@ -1,46 +1,46 @@ -/* - * Copyright (c) 2023 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the 'License'); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an 'AS IS' BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -@Entry -@Component -struct FunB { - build() { - Column() { - Row() { - Text(($r('app.string.ButtonB_label'))) - .fontSize(24) - .fontWeight(FontWeight.Bold) - .textAlign(TextAlign.Start) - .margin({ top: 12, bottom: 11, right: 24, left: 24 }) - } - .width('100%') - .height(56) - .justifyContent(FlexAlign.Start) - - Image($r('app.media.pic_empty')) - .width(120) - .height(120) - .margin({ top: 224 }) - - Text($r('app.string.NoContentAvailable')) - .fontSize(14) - .fontColor($r('app.color.text_color')) - .opacity(0.4) - .margin({ top: 8, bottom: 317, right: 152, left: 152 }) - } - .width('100%') - .height('100%') - } +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the 'License'); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an 'AS IS' BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@Entry +@Component +struct FunB { + build() { + Column() { + Row() { + Text(($r('app.string.ButtonB_label'))) + .fontSize(24) + .fontWeight(FontWeight.Bold) + .textAlign(TextAlign.Start) + .margin({ top: 12, bottom: 11, right: 24, left: 24 }) + } + .width('100%') + .height(56) + .justifyContent(FlexAlign.Start) + + Image($r('app.media.pic_empty')) + .width(120) + .height(120) + .margin({ top: 224 }) + + Text($r('app.string.NoContentAvailable')) + .fontSize(14) + .fontColor($r('app.color.text_color')) + .opacity(0.4) + .margin({ top: 8, bottom: 317, right: 152, left: 152 }) + } + .width('100%') + .height('100%') + } } \ No newline at end of file diff --git a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/jscardentryability/JsCardEntryAbility.ts b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/jscardentryability/JsCardEntryAbility.ts index 8ff0bf1d5d6cce1d195222b3617d086ed17af9c6..0142c91fc8a0f511034d59426156d930f3ae3528 100644 --- a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/jscardentryability/JsCardEntryAbility.ts +++ b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/jscardentryability/JsCardEntryAbility.ts @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022-2023 Huawei Device Co., Ltd. + * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -26,14 +26,14 @@ export default class JsCardEntryAbility extends UIAbility { onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { if (want.parameters) { let params: Record = JSON.parse(JSON.stringify(want.parameters.params)); - // ȡrouter¼дݵinfo + // ��ȡrouter�¼��д��ݵ�info���� if (params.info === 'router info') { - // ִҵ߼ + // ִ��ҵ���߼� hilog.info(DOMAIN_NUMBER, TAG, `router info: ${params.info}`); } - // ȡrouter¼дݵmessage + // ��ȡrouter�¼��д��ݵ�message���� if (params.message === 'router message') { - // ִҵ߼ + // ִ��ҵ���߼� hilog.info(DOMAIN_NUMBER, TAG, `router message: ${params.message}`); } } diff --git a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/jscardformability/JsCardFormAbility.ts b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/jscardformability/JsCardFormAbility.ts index 4703d18ae407dc5e5b2d3555934f5a37cda4dda9..0e8b6c00612987498365ac6347bb76363f92d357 100644 --- a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/jscardformability/JsCardFormAbility.ts +++ b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/jscardformability/JsCardFormAbility.ts @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022-2023 Huawei Device Co., Ltd. + * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -13,49 +13,50 @@ * limitations under the License. */ -import type Base from '@ohos.base'; -import type common from '@ohos.app.ability.common'; -import dataPreferences from '@ohos.data.preferences'; -import formBindingData from '@ohos.app.form.formBindingData'; -import FormExtensionAbility from '@ohos.app.form.FormExtensionAbility'; -import formInfo from '@ohos.app.form.formInfo'; -import formProvider from '@ohos.app.form.formProvider'; -import hilog from '@ohos.hilog'; -import type Want from '@ohos.app.ability.Want'; -import { Configuration } from '@ohos.app.ability.Configuration'; +import { common, Want } from '@kit.AbilityKit'; +import { hilog } from '@kit.PerformanceAnalysisKit'; +import { formBindingData, FormExtensionAbility, formInfo, formProvider } from '@kit.FormKit'; +import { BusinessError } from '@kit.BasicServicesKit'; +import { preferences } from '@kit.ArkData'; +import { Configuration } from '@kit.ArkUI'; const TAG: string = 'JsCardFormAbility'; const DATA_STORAGE_PATH: string = '/data/storage/el2/base/haps/form_store'; const DOMAIN_NUMBER: number = 0xFF00; -let storeFormInfo = async (formId: string, formName: string, tempFlag: boolean, context: common.FormExtensionContext): Promise => { - // 此处仅对卡片ID:formId,卡片名:formName和是否为临时卡片:tempFlag进行了持久化 - let formInfo: Record = { - formName: formName, - tempFlag: tempFlag, - updateCount: 0 - }; - try { - const storage: dataPreferences.Preferences = await dataPreferences.getPreferences(context, DATA_STORAGE_PATH); - // put form info - await storage.put(formId, JSON.stringify(formInfo)); - hilog.info(DOMAIN_NUMBER, TAG, `[EntryFormAbility] storeFormInfo, put form info successfully, formId: ${formId}`); - await storage.flush(); - } catch (err) { - hilog.error(DOMAIN_NUMBER, TAG, `[EntryFormAbility] failed to storeFormInfo, err: ${JSON.stringify(err as Base.BusinessError)}`); +let storeFormInfo = + async (formId: string, formName: string, tempFlag: boolean, context: common.FormExtensionContext): Promise => { + // 此处仅对卡片ID:formId,卡片名:formName和是否为临时卡片:tempFlag进行了持久化 + let formInfo: Record = { + formName: formName, + tempFlag: tempFlag, + updateCount: 0 + }; + try { + const storage: preferences.Preferences = await preferences.getPreferences(context, DATA_STORAGE_PATH); + // put form info + await storage.put(formId, JSON.stringify(formInfo)); + hilog.info(DOMAIN_NUMBER, TAG, `[EntryFormAbility] storeFormInfo, put form info successfully, formId: ${formId}`); + await storage.flush(); + } catch (err) { + hilog.error(DOMAIN_NUMBER, TAG, + `[EntryFormAbility] failed to storeFormInfo, err: ${JSON.stringify(err as BusinessError)}`); + } + ; }; -}; let deleteFormInfo = async (formId: string, context: common.FormExtensionContext): Promise => { try { - const storage: dataPreferences.Preferences = await dataPreferences.getPreferences(context, DATA_STORAGE_PATH); + const storage: preferences.Preferences = await preferences.getPreferences(context, DATA_STORAGE_PATH); // del form info await storage.delete(formId); hilog.info(DOMAIN_NUMBER, TAG, `[EntryFormAbility] deleteFormInfo, del form info successfully, formId: ${formId}`); await storage.flush(); } catch (err) { - hilog.error(DOMAIN_NUMBER, TAG, `[EntryFormAbility] failed to deleteFormInfo, err: ${JSON.stringify(err as Base.BusinessError)}`); - }; + hilog.error(DOMAIN_NUMBER, TAG, + `[EntryFormAbility] failed to deleteFormInfo, err: ${JSON.stringify(err as BusinessError)}`); + } + ; }; export default class JsCardFormAbility extends FormExtensionAbility { @@ -93,7 +94,7 @@ export default class JsCardFormAbility extends FormExtensionAbility { detail: 'detailOnUpdate' }; let formData: formBindingData.FormBindingData = formBindingData.createFormBindingData(obj); - formProvider.updateForm(formId, formData).catch((error: Base.BusinessError) => { + formProvider.updateForm(formId, formData).catch((error: BusinessError) => { hilog.info(DOMAIN_NUMBER, TAG, '[EntryFormAbility] updateForm, error:' + JSON.stringify(error)); }); } diff --git a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/nextrefreshtime/pages/NextRefreshTimeCard.ets b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/nextrefreshtime/pages/NextRefreshTimeCard.ets index 25f1de4d678de0c0119fe51a64ed1dd985d95e3a..002ac87fb42fda467cd02bcabbf2775e61290e44 100644 --- a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/nextrefreshtime/pages/NextRefreshTimeCard.ets +++ b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/nextrefreshtime/pages/NextRefreshTimeCard.ets @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022-2023 Huawei Device Co., Ltd. + * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at diff --git a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/pages/Index.ets b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/pages/Index.ets index c4854813cd06de926bc9a0d8463c65725958fa7b..01e64edb9384451e6c3e72a0243de283874df828 100644 --- a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/pages/Index.ets +++ b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/pages/Index.ets @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022-2023 Huawei Device Co., Ltd. + * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -13,6 +13,7 @@ * limitations under the License. */ + @Entry @Component struct Index { diff --git a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/persistentdataformability/PersistentDataFormAbility.ts b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/persistentdataformability/PersistentDataFormAbility.ts index b25b26e487c29c860c71c03a8c0913ceb34baa62..663159134fa5a638ab1f16f7577fab9fa576e39e 100644 --- a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/persistentdataformability/PersistentDataFormAbility.ts +++ b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/persistentdataformability/PersistentDataFormAbility.ts @@ -1,5 +1,5 @@ /* - * Copyright (c) 2023 Huawei Device Co., Ltd. + * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the 'License'); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -13,11 +13,9 @@ * limitations under the License. */ -import dataShare from '@ohos.data.dataShare'; -import type formBindingData from '@ohos.app.form.formBindingData'; -import FormExtensionAbility from '@ohos.app.form.FormExtensionAbility'; -import formInfo from '@ohos.app.form.formInfo'; -import type Want from '@ohos.app.ability.Want'; +import { formBindingData, FormExtensionAbility, formInfo } from '@kit.FormKit'; +import { Want } from '@kit.AbilityKit'; +import { dataShare } from '@kit.ArkData'; export default class PersistentDataFormAbility extends FormExtensionAbility { onAddForm(want: Want): formBindingData.FormBindingData { diff --git a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/processdataentryability/ProcessDataFormAbility.ts b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/processdataentryability/ProcessDataFormAbility.ts index 474548437f4e03e0c035c2937b82d4d13b1fdfe6..6947b3c5b848350ebef78ae863535cb0977a49e0 100644 --- a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/processdataentryability/ProcessDataFormAbility.ts +++ b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/processdataentryability/ProcessDataFormAbility.ts @@ -1,5 +1,5 @@ /* - * Copyright (c) 2023 Huawei Device Co., Ltd. + * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the 'License'); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -13,11 +13,9 @@ * limitations under the License. */ -import formInfo from '@ohos.app.form.formInfo'; -import formBindingData from '@ohos.app.form.formBindingData'; -import FormExtensionAbility from '@ohos.app.form.FormExtensionAbility'; -import hilog from '@ohos.hilog'; -import type Want from '@ohos.app.ability.Want'; +import { formBindingData, FormExtensionAbility, formInfo } from '@kit.FormKit'; +import { Want } from '@kit.AbilityKit'; +import { hilog } from '@kit.PerformanceAnalysisKit'; const TAG: string = 'ProcessDataFormAbility'; const DOMAIN_NUMBER: number = 0xFF00; diff --git a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/requestForm/pages/RequestFormCard.ets b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/requestForm/pages/RequestFormCard.ets index 2ae05bd75171900ada72b2ec27a85f084e9fdfab..846ad9f39e193d62d1e459e91741cab1212f7c5a 100644 --- a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/requestForm/pages/RequestFormCard.ets +++ b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/requestForm/pages/RequestFormCard.ets @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022-2023 Huawei Device Co., Ltd. + * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at diff --git a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/scheduledupdatetime/pages/ScheduledUpdateTimeCard.ets b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/scheduledupdatetime/pages/ScheduledUpdateTimeCard.ets index 86d91bccf2e86c85b62746518f1f81f64f1af262..cead17eaa3e76027caa75ebeb425336d4cb4c978 100644 --- a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/scheduledupdatetime/pages/ScheduledUpdateTimeCard.ets +++ b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/scheduledupdatetime/pages/ScheduledUpdateTimeCard.ets @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022-2023 Huawei Device Co., Ltd. + * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at diff --git a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/updatebymessage/pages/UpdateByMessageCard.ets b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/updatebymessage/pages/UpdateByMessageCard.ets index d95fbfc2993e8b6ff8b8b1f8f9f3c9e219b4f3b1..63b151b0dc20124789ca514d211411e0b1f65c8b 100644 --- a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/updatebymessage/pages/UpdateByMessageCard.ets +++ b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/updatebymessage/pages/UpdateByMessageCard.ets @@ -1,5 +1,5 @@ /* - * Copyright (c) 2023 Huawei Device Co., Ltd. + * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the 'License'); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at diff --git a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/updatebystatusformability/UpdateByStatusFormAbility.ts b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/updatebystatusformability/UpdateByStatusFormAbility.ts index dfd542c9ea77c8dc2a75d4e7dd4c66479cf6a118..c630872c05baff58ceba7c5220dd6dcf701d8e6f 100644 --- a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/updatebystatusformability/UpdateByStatusFormAbility.ts +++ b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/updatebystatusformability/UpdateByStatusFormAbility.ts @@ -1,5 +1,5 @@ /* - * Copyright (c) 2023 Huawei Device Co., Ltd. + * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the 'License'); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -13,14 +13,11 @@ * limitations under the License. */ -import type Base from '@ohos.base'; -import dataPreferences from '@ohos.data.preferences'; -import formInfo from '@ohos.app.form.formInfo'; -import formProvider from '@ohos.app.form.formProvider'; -import formBindingData from '@ohos.app.form.formBindingData'; -import FormExtensionAbility from '@ohos.app.form.FormExtensionAbility'; -import hilog from '@ohos.hilog'; -import type Want from '@ohos.app.ability.Want'; +import { Want } from '@kit.AbilityKit'; +import { preferences } from '@kit.ArkData'; +import { BusinessError } from '@kit.BasicServicesKit'; +import { formBindingData, FormExtensionAbility, formInfo, formProvider } from '@kit.FormKit'; +import { hilog } from '@kit.PerformanceAnalysisKit'; const TAG: string = 'UpdateByStatusFormAbility'; const DOMAIN_NUMBER: number = 0xFF00; @@ -34,13 +31,13 @@ export default class UpdateByStatusFormAbility extends FormExtensionAbility { isTempCard = want.parameters[formInfo.FormParam.TEMPORARY_KEY] as boolean; if (isTempCard === false) { // 如果为常态卡片,直接进行信息持久化 hilog.info(DOMAIN_NUMBER, TAG, 'Not temp card, init db for:' + formId); - let promise: Promise = dataPreferences.getPreferences(this.context, 'myStore'); - promise.then(async (storeDB: dataPreferences.Preferences) => { + let promise: Promise = preferences.getPreferences(this.context, 'myStore'); + promise.then(async (storeDB: preferences.Preferences) => { hilog.info(DOMAIN_NUMBER, TAG, 'Succeeded to get preferences.'); await storeDB.put('A' + formId, 'false'); await storeDB.put('B' + formId, 'false'); await storeDB.flush(); - }).catch((err: Base.BusinessError) => { + }).catch((err: BusinessError) => { hilog.info(DOMAIN_NUMBER, TAG, `Failed to get preferences. ${JSON.stringify(err)}`); }); } @@ -51,12 +48,12 @@ export default class UpdateByStatusFormAbility extends FormExtensionAbility { onRemoveForm(formId: string): void { hilog.info(DOMAIN_NUMBER, TAG, 'onRemoveForm, formId:' + formId); - let promise = dataPreferences.getPreferences(this.context, 'myStore'); + let promise = preferences.getPreferences(this.context, 'myStore'); promise.then(async (storeDB) => { hilog.info(DOMAIN_NUMBER, TAG, 'Succeeded to get preferences.'); await storeDB.delete('A' + formId); await storeDB.delete('B' + formId); - }).catch((err: Base.BusinessError) => { + }).catch((err: BusinessError) => { hilog.info(DOMAIN_NUMBER, TAG, `Failed to get preferences. ${JSON.stringify(err)}`); }); } @@ -64,20 +61,20 @@ export default class UpdateByStatusFormAbility extends FormExtensionAbility { // 如果在添加时为临时卡片,则建议转为常态卡片时进行信息持久化 onCastToNormalForm(formId: string): void { hilog.info(DOMAIN_NUMBER, TAG, 'onCastToNormalForm, formId:' + formId); - let promise: Promise = dataPreferences.getPreferences(this.context, 'myStore'); - promise.then(async (storeDB: dataPreferences.Preferences) => { + let promise: Promise = preferences.getPreferences(this.context, 'myStore'); + promise.then(async (storeDB: preferences.Preferences) => { hilog.info(DOMAIN_NUMBER, TAG, 'Succeeded to get preferences.'); await storeDB.put('A' + formId, 'false'); await storeDB.put('B' + formId, 'false'); await storeDB.flush(); - }).catch((err: Base.BusinessError) => { + }).catch((err: BusinessError) => { hilog.info(DOMAIN_NUMBER, TAG, `Failed to get preferences. ${JSON.stringify(err)}`); }); } onUpdateForm(formId: string): void { - let promise: Promise = dataPreferences.getPreferences(this.context, 'myStore'); - promise.then(async (storeDB: dataPreferences.Preferences) => { + let promise: Promise = preferences.getPreferences(this.context, 'myStore'); + promise.then(async (storeDB: preferences.Preferences) => { hilog.info(DOMAIN_NUMBER, TAG, 'Succeeded to get preferences from onUpdateForm.'); let stateA = await storeDB.get('A' + formId, 'false'); let stateB = await storeDB.get('B' + formId, 'false'); @@ -98,7 +95,7 @@ export default class UpdateByStatusFormAbility extends FormExtensionAbility { await formProvider.updateForm(formId, formInfo); } hilog.info(DOMAIN_NUMBER, TAG, `Update form success stateA:${stateA} stateB:${stateB}.`); - }).catch((err: Base.BusinessError) => { + }).catch((err: BusinessError) => { hilog.info(DOMAIN_NUMBER, TAG, `Failed to get preferences. ${JSON.stringify(err)}`); }); } @@ -106,8 +103,8 @@ export default class UpdateByStatusFormAbility extends FormExtensionAbility { onFormEvent(formId: string, message: string): void { // 存放卡片状态 hilog.info(DOMAIN_NUMBER, TAG, 'onFormEvent formId:' + formId + 'msg:' + message); - let promise: Promise = dataPreferences.getPreferences(this.context, 'myStore'); - promise.then(async (storeDB: dataPreferences.Preferences) => { + let promise: Promise = preferences.getPreferences(this.context, 'myStore'); + promise.then(async (storeDB: preferences.Preferences) => { hilog.info(DOMAIN_NUMBER, TAG, 'Succeeded to get preferences.'); let msg: Record = JSON.parse(message); if (msg.selectA !== undefined) { @@ -119,7 +116,7 @@ export default class UpdateByStatusFormAbility extends FormExtensionAbility { await storeDB.put('B' + formId, msg.selectB); } await storeDB.flush(); - }).catch((err: Base.BusinessError) => { + }).catch((err: BusinessError) => { hilog.info(DOMAIN_NUMBER, TAG, `Failed to get preferences. ${JSON.stringify(err)}`); }); } diff --git a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/updatebytimeformability/UpdateByTimeFormAbility.ts b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/updatebytimeformability/UpdateByTimeFormAbility.ts index 44a8c26e6f3db8a63d23b499a8bc93b79e1dd68d..ddee8456e68b35011e338b49d39e598bfea35184 100644 --- a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/updatebytimeformability/UpdateByTimeFormAbility.ts +++ b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/updatebytimeformability/UpdateByTimeFormAbility.ts @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022-2023 Huawei Device Co., Ltd. + * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -13,13 +13,10 @@ * limitations under the License. */ -import type Base from '@ohos.base'; -import formBindingData from '@ohos.app.form.formBindingData'; -import FormExtensionAbility from '@ohos.app.form.FormExtensionAbility'; -import formInfo from '@ohos.app.form.formInfo'; -import formProvider from '@ohos.app.form.formProvider'; -import hilog from '@ohos.hilog'; -import type Want from '@ohos.app.ability.Want'; +import { formBindingData, FormExtensionAbility, formInfo, formProvider } from '@kit.FormKit'; +import { hilog } from '@kit.PerformanceAnalysisKit'; +import { BusinessError } from '@kit.BasicServicesKit'; +import { Want } from '@kit.AbilityKit'; const TAG: string = 'UpdateByTimeFormAbility'; const FIVE_MINUTE: number = 5; @@ -53,17 +50,21 @@ export default class UpdateByTimeFormAbility extends FormExtensionAbility { hilog.info(DOMAIN_NUMBER, TAG, `FormAbility onFormEvent, formId = ${formId}, message: ${JSON.stringify(message)}`); try { // 设置过5分钟后更新卡片内容 - formProvider.setFormNextRefreshTime(formId, FIVE_MINUTE, (err: Base.BusinessError) => { + formProvider.setFormNextRefreshTime(formId, FIVE_MINUTE, (err: BusinessError) => { if (err) { - hilog.info(DOMAIN_NUMBER, TAG, `Failed to setFormNextRefreshTime. Code: ${err.code}, message: ${err.message}`); + hilog.info(DOMAIN_NUMBER, TAG, + `Failed to setFormNextRefreshTime. Code: ${err.code}, message: ${err.message}`); return; } else { hilog.info(DOMAIN_NUMBER, TAG, 'Succeeded in setFormNextRefreshTiming.'); } }); } catch (err) { - hilog.info(DOMAIN_NUMBER, TAG, `Failed to setFormNextRefreshTime. Code: ${(err as Base.BusinessError).code}, message: ${(err as Base.BusinessError).message}`); - }; + hilog.info(DOMAIN_NUMBER, TAG, + `Failed to setFormNextRefreshTime. Code: ${(err as BusinessError).code}, + message: ${(err as BusinessError).message}`); + } + ; } onAcquireFormState(want: Want): formInfo.FormState { diff --git a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/updateduration/pages/UpdateDurationCard.ets b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/updateduration/pages/UpdateDurationCard.ets index 15b84e8774e2f721d0e5bd7a112097bead79f6a8..d3910e97192161870460195a9e81b44c120cd477 100644 --- a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/updateduration/pages/UpdateDurationCard.ets +++ b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/updateduration/pages/UpdateDurationCard.ets @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022-2023 Huawei Device Co., Ltd. + * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at diff --git a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/wgtimgupdateentryformability/WgtImgUpdateEntryFormAbility.ts b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/wgtimgupdateentryformability/WgtImgUpdateEntryFormAbility.ts index d7f11cd4cdd3f5f415b7c78f69c5647d5158b7fc..c974f2b3a36aedee6e7f65ea640d7b9230d14082 100644 --- a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/wgtimgupdateentryformability/WgtImgUpdateEntryFormAbility.ts +++ b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/wgtimgupdateentryformability/WgtImgUpdateEntryFormAbility.ts @@ -1,5 +1,5 @@ /* - * Copyright (c) 2023 Huawei Device Co., Ltd. + * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the 'License'); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -13,19 +13,17 @@ * limitations under the License. */ -import type Base from '@ohos.base'; -import type fileFs from '@ohos.file.fs'; -import formBindingData from '@ohos.app.form.formBindingData'; -import FormExtensionAbility from '@ohos.app.form.FormExtensionAbility'; -import formInfo from '@ohos.app.form.formInfo'; -import formProvider from '@ohos.app.form.formProvider'; -import fs from '@ohos.file.fs'; -import hilog from '@ohos.hilog'; -import request from '@ohos.request'; -import type Want from '@ohos.app.ability.Want'; +import { Want } from '@kit.AbilityKit'; +import { BusinessError } from '@kit.BasicServicesKit'; +import { fileIo } from '@kit.CoreFileKit'; +import { formBindingData, FormExtensionAbility, formInfo, formProvider } from '@kit.FormKit'; +import { hilog } from '@kit.PerformanceAnalysisKit'; +import { http } from '@kit.NetworkKit'; const TAG: string = 'WgtImgUpdateEntryFormAbility'; const DOMAIN_NUMBER: number = 0xFF00; +const TEXT1: string = '刷新中...' +const TEXT2: string = '刷新失败' export default class WgtImgUpdateEntryFormAbility extends FormExtensionAbility { // 在添加卡片时,打开一个本地图片并将图片内容传递给卡片页面显示 @@ -34,86 +32,99 @@ export default class WgtImgUpdateEntryFormAbility extends FormExtensionAbility { let tempDir = this.context.getApplicationContext().tempDir; hilog.info(DOMAIN_NUMBER, TAG, `tempDir: ${tempDir}`); // 打开本地图片并获取其打开后的fd - let file: fileFs.File; - let imgBear: Record; + let imgMap: Record = {}; try { - file = fs.openSync(tempDir + '/' + 'head.PNG'); - imgBear = { - 'imgBear': file.fd - }; + // 打开本地图片并获取其打开后的fd + let file = fileIo.openSync(tempDir + '/' + 'head.PNG'); + imgMap['imgBear'] = file.fd; } catch (e) { - hilog.error(DOMAIN_NUMBER, TAG, `openSync failed: ${JSON.stringify(e as Base.BusinessError)}`); - }; + hilog.error(DOMAIN_NUMBER, TAG, `openSync failed: ${JSON.stringify(e as BusinessError)}`); + } + ; class FormDataClass { text: string = 'Image: Bear'; - imgName: string = 'imgBear'; loaded: boolean = true; - formImages: Record = imgBear; + // 卡片需要显示图片场景, 必须和下列字段formImages 中的key 'imgBear' 相同。 + imgName: string = 'imgBear'; + // 卡片需要显示图片场景, 必填字段(formImages 不可缺省或改名), 'imgBear' 对应 fd + formImages: Record = imgMap; } let formData = new FormDataClass(); - // 将fd封装在formData中并返回至卡片页面 return formBindingData.createFormBindingData(formData); } - onFormEvent(formId: string, message: string): void { + async onFormEvent(formId: string, message: string): Promise { let param: Record = { - 'text': '刷新中...' + 'text': TEXT1 }; let formInfo: formBindingData.FormBindingData = formBindingData.createFormBindingData(param); formProvider.updateForm(formId, formInfo); + // 注意:FormExtensionAbility在触发生命周期回调时被拉起,仅能在后台存在5秒 // 建议下载能快速下载完成的小文件,如在5秒内未下载完成,则此次网络图片无法刷新至卡片页面上 - let netFile = 'https://cn-assets.gitee.com/assets/mini_app-e5eee5a21c552b69ae6bf2cf87406b59.jpg'; // 需要在此处使用真实的网络图片下载链接 + let netFile = + 'https://cn-assets.gitee.com/assets/mini_app-e5eee5a21c552b69ae6bf2cf87406b59.jpg'; + // 需要在此处使用真实的网络图片下载链接 let tempDir = this.context.getApplicationContext().tempDir; let fileName = 'file' + Date.now(); let tmpFile = tempDir + '/' + fileName; - request.downloadFile(this.context, { - url: netFile, filePath: tmpFile, enableMetered: true, enableRoaming: true - }).then((task) => { - task.on('complete', () => { - hilog.info(DOMAIN_NUMBER, TAG, 'ArkTSCard download complete: %{public}s', tmpFile); - let file: fileFs.File; - let fileInfo: Record = {}; - try { - file = fs.openSync(tmpFile); - fileInfo[fileName] = file.fd; - } catch (e) { - hilog.error(DOMAIN_NUMBER, TAG, `openSync failed: ${JSON.stringify(e as Base.BusinessError)}`); - }; + let imgMap: Record = {}; - class FormDataClass { - text: string = 'Image: Bear' + fileName; - imgName: string = fileName; - loaded: boolean = true; - formImages: object = fileInfo; + class FormDataClass { + text: string = 'Image: Bear' + fileName; + loaded: boolean = true; + // 卡片需要显示图片场景, 必须和下列字段formImages 中的key fileName 相同。 + imgName: string = fileName; + // 卡片需要显示图片场景, 必填字段(formImages 不可缺省或改名), fileName 对应 fd + formImages: Record = imgMap; + } + + let httpRequest = http.createHttp() + let data = await httpRequest.request(netFile); + if (data?.responseCode == http.ResponseCode.OK) { + try { + let imgFile = fileIo.openSync(tmpFile, fileIo.OpenMode.READ_WRITE | fileIo.OpenMode.CREATE); + imgMap[fileName] = imgFile.fd; + try { + let writeLen: number = await fileIo.write(imgFile.fd, data.result as ArrayBuffer); + hilog.info(DOMAIN_NUMBER, TAG, "write data to file succeed and size is:" + writeLen); + hilog.info(DOMAIN_NUMBER, TAG, 'ArkTSCard download complete: %{public}s', tmpFile); + try { + let formData = new FormDataClass(); + let formInfo = formBindingData.createFormBindingData(formData); + await formProvider.updateForm(formId, formInfo); + hilog.info(DOMAIN_NUMBER, TAG, '%{public}s', 'FormAbility updateForm success.'); + } catch (error) { + hilog.error(DOMAIN_NUMBER, TAG, `FormAbility updateForm failed: ${JSON.stringify(error)}`); + } + } catch (err) { + hilog.error(DOMAIN_NUMBER, TAG, + "write data to file failed with error message: " + err.message + ", error code: " + err.code); + } finally { + fileIo.closeSync(imgFile); } + ; + } catch (e) { + hilog.error(DOMAIN_NUMBER, TAG, `openSync failed: ${JSON.stringify(e as BusinessError)}`); + } - let formData = new FormDataClass(); - let formInfo = formBindingData.createFormBindingData(formData); - formProvider.updateForm(formId, formInfo).then(() => { - hilog.info(DOMAIN_NUMBER, TAG, '%{public}s', 'FormAbility updateForm success.'); - }).catch((error: Base.BusinessError) => { - hilog.error(DOMAIN_NUMBER, TAG, `FormAbility updateForm failed: ${JSON.stringify(error)}`); - }); - }); - task.on('fail', (err: number) => { - hilog.info(DOMAIN_NUMBER, TAG, `ArkTSCard download task failed. Cause: ${JSON.stringify(err)}`); - let param: Record = { - 'text': '刷新失败' - }; - let formInfo: formBindingData.FormBindingData = formBindingData.createFormBindingData(param); - formProvider.updateForm(formId, formInfo); - }); - }).catch((err: Base.BusinessError) => { - hilog.error(DOMAIN_NUMBER, TAG, `Failed to request the download. Cause: ${JSON.stringify(err)}`); - }); + } else { + hilog.error(DOMAIN_NUMBER, TAG, `ArkTSCard download task failed`); + let param: Record = { + 'text': TEXT2 + }; + let formInfo: formBindingData.FormBindingData = formBindingData.createFormBindingData(param); + formProvider.updateForm(formId, formInfo); + } + httpRequest.destroy(); } onAcquireFormState(want: Want): formInfo.FormState { // Called to return a {@link FormState} object. return formInfo.FormState.READY; } -} \ No newline at end of file +} + diff --git a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/widgetcalleeentryability/WidgetCalleeEntryAbility.ts b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/widgetcalleeentryability/WidgetCalleeEntryAbility.ts index d723abe0c497af1d05946c235137adac8a323dcd..306866ca2dab0bdd798031455f13e750d1da9060 100644 --- a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/widgetcalleeentryability/WidgetCalleeEntryAbility.ts +++ b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/widgetcalleeentryability/WidgetCalleeEntryAbility.ts @@ -1,5 +1,5 @@ /* - * Copyright (c) 2023 Huawei Device Co., Ltd. + * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the 'License'); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -13,14 +13,12 @@ * limitations under the License. */ -import type AbilityConstant from '@ohos.app.ability.AbilityConstant'; -import formBindingData from '@ohos.app.form.formBindingData'; -import formProvider from '@ohos.app.form.formProvider'; -import hilog from '@ohos.hilog'; -import type rpc from '@ohos.rpc'; -import UIAbility from '@ohos.app.ability.UIAbility'; -import type Want from '@ohos.app.ability.Want'; -import type window from '@ohos.window'; +import { AbilityConstant, UIAbility, Want } from '@kit.AbilityKit'; +import { window } from '@kit.ArkUI'; +import { BusinessError } from '@kit.BasicServicesKit'; +import { formBindingData, formProvider } from '@kit.FormKit'; +import { rpc } from '@kit.IPCKit'; +import { hilog } from '@kit.PerformanceAnalysisKit'; const TAG: string = 'WidgetCalleeEntryAbility'; const DOMAIN_NUMBER: number = 0xFF00; @@ -58,12 +56,12 @@ let funACall = (data: rpc.MessageSequence): MyParcelable => { let message: string = params.calleeDetail; hilog.info(DOMAIN_NUMBER, TAG, `UpdateForm formId: ${curFormId}, message: ${message}`); let formData: Record = { - calleeDetail: message + 'calleeDetail': message }; let formMsg: formBindingData.FormBindingData = formBindingData.createFormBindingData(formData); formProvider.updateForm(curFormId, formMsg).then((data) => { hilog.info(DOMAIN_NUMBER, TAG, `updateForm success. ${JSON.stringify(data)}`); - }).catch((error) => { + }).catch((error:BusinessError) => { hilog.error(DOMAIN_NUMBER, TAG, `updateForm failed: ${JSON.stringify(error)}`); }); } diff --git a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/widgetcalleeformability/WidgetCalleeFormAbility.ts b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/widgetcalleeformability/WidgetCalleeFormAbility.ts index da2c216f718d50d1be5f7c63d98e3b26677cfa3f..fb3e60652dadbfaefc494b53ddd26324f8b910a1 100644 --- a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/widgetcalleeformability/WidgetCalleeFormAbility.ts +++ b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/widgetcalleeformability/WidgetCalleeFormAbility.ts @@ -1,5 +1,5 @@ /* - * Copyright (c) 2023 Huawei Device Co., Ltd. + * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the 'License'); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -13,10 +13,8 @@ * limitations under the License. */ -import formBindingData from '@ohos.app.form.formBindingData'; -import FormExtensionAbility from '@ohos.app.form.FormExtensionAbility'; -import formInfo from '@ohos.app.form.formInfo'; -import type Want from '@ohos.app.ability.Want'; +import { Want } from '@kit.AbilityKit'; +import { formBindingData, FormExtensionAbility, formInfo } from '@kit.FormKit'; export default class WidgetCalleeFormAbility extends FormExtensionAbility { onAddForm(want: Want): formBindingData.FormBindingData { diff --git a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/widgeteventcall/pages/WidgetEventCallCard.ets b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/widgeteventcall/pages/WidgetEventCallCard.ets index eda6d22d0cf92fb22a2aacdbb257a09d10ca131f..52d6d7dd3c11c96d31ceda7a33739bff58cc45f2 100644 --- a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/widgeteventcall/pages/WidgetEventCallCard.ets +++ b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/widgeteventcall/pages/WidgetEventCallCard.ets @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022-2023 Huawei Device Co., Ltd. + * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at diff --git a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/widgeteventcallentryability/WidgetEventCallEntryAbility.ts b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/widgeteventcallentryability/WidgetEventCallEntryAbility.ts index 32c5749af65d3ded62bfa045d049593f44d3eee3..8922edaaa726da46abeb6bc24a5d2eff7569bfac 100644 --- a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/widgeteventcallentryability/WidgetEventCallEntryAbility.ts +++ b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/widgeteventcallentryability/WidgetEventCallEntryAbility.ts @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022-2023 Huawei Device Co., Ltd. + * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -13,13 +13,11 @@ * limitations under the License. */ -import type AbilityConstant from '@ohos.app.ability.AbilityConstant'; -import type Base from '@ohos.base'; -import hilog from '@ohos.hilog'; -import promptAction from '@ohos.promptAction'; -import type rpc from '@ohos.rpc'; -import UIAbility from '@ohos.app.ability.UIAbility'; -import type Want from '@ohos.app.ability.Want'; +import { AbilityConstant, UIAbility, Want } from '@kit.AbilityKit'; +import { promptAction } from '@kit.ArkUI'; +import { BusinessError } from '@kit.BasicServicesKit'; +import { rpc } from '@kit.IPCKit'; +import { hilog } from '@kit.PerformanceAnalysisKit'; const TAG: string = 'WidgetEventCallEntryAbility'; const DOMAIN_NUMBER: number = 0xFF00; @@ -70,7 +68,7 @@ export default class WidgetEventCallEntryAbility extends UIAbility { return new MyParcelable(CONST_NUMBER_2, 'bbb'); }); } catch (err) { - hilog.error(DOMAIN_NUMBER, TAG, `Failed to register callee on. Cause: ${JSON.stringify(err as Base.BusinessError)}`); + hilog.error(DOMAIN_NUMBER, TAG, `Failed to register callee on. Cause: ${JSON.stringify(err as BusinessError)}`); }; } @@ -80,7 +78,7 @@ export default class WidgetEventCallEntryAbility extends UIAbility { this.callee.off('funA'); this.callee.off('funB'); } catch (err) { - hilog.error(DOMAIN_NUMBER, TAG, `Failed to register callee off. Cause: ${JSON.stringify(err as Base.BusinessError)}`); + hilog.error(DOMAIN_NUMBER, TAG, `Failed to register callee off. Cause: ${JSON.stringify(err as BusinessError)}`); }; } } \ No newline at end of file diff --git a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/widgetevententryability/WidgetEventRouterEntryAbility.ts b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/widgetevententryability/WidgetEventRouterEntryAbility.ts index 21261aa18662065dd266d014d580958b31cc424a..7928a25a74b5108c794a056808a7b7eacef0260a 100644 --- a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/widgetevententryability/WidgetEventRouterEntryAbility.ts +++ b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/widgetevententryability/WidgetEventRouterEntryAbility.ts @@ -1,5 +1,5 @@ /* - * Copyright (c) 2023 Huawei Device Co., Ltd. + * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the 'License'); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -13,15 +13,11 @@ * limitations under the License. */ -import type AbilityConstant from '@ohos.app.ability.AbilityConstant'; -import type Base from '@ohos.base'; -import formBindingData from '@ohos.app.form.formBindingData'; -import formInfo from '@ohos.app.form.formInfo'; -import formProvider from '@ohos.app.form.formProvider'; -import hilog from '@ohos.hilog'; -import UIAbility from '@ohos.app.ability.UIAbility'; -import type Want from '@ohos.app.ability.Want'; -import type window from '@ohos.window'; +import { AbilityConstant, UIAbility, Want } from '@kit.AbilityKit'; +import { window } from '@kit.ArkUI'; +import { BusinessError } from '@kit.BasicServicesKit'; +import { formBindingData, formInfo, formProvider } from '@kit.FormKit'; +import { hilog } from '@kit.PerformanceAnalysisKit'; const TAG: string = 'WidgetEventRouterEntryAbility'; const DOMAIN_NUMBER: number = 0xFF00; @@ -43,7 +39,7 @@ export default class WidgetEventRouterEntryAbility extends UIAbility { let formMsg = formBindingData.createFormBindingData(formData); formProvider.updateForm(want.parameters[formInfo.FormParam.IDENTITY_KEY] + '', formMsg).then((data) => { hilog.info(DOMAIN_NUMBER, TAG, 'updateForm success.', JSON.stringify(data)); - }).catch((error: Base.BusinessError) => { + }).catch((error: BusinessError) => { hilog.info(DOMAIN_NUMBER, TAG, 'updateForm failed.', JSON.stringify(error)); }); } @@ -62,7 +58,7 @@ export default class WidgetEventRouterEntryAbility extends UIAbility { let formMsg = formBindingData.createFormBindingData(formData); formProvider.updateForm(want.parameters[formInfo.FormParam.IDENTITY_KEY] + '', formMsg).then((data) => { hilog.info(DOMAIN_NUMBER, TAG, 'updateForm success.', JSON.stringify(data)); - }).catch((error: Base.BusinessError) => { + }).catch((error: BusinessError) => { hilog.info(DOMAIN_NUMBER, TAG, 'updateForm failed.', JSON.stringify(error)); }); } diff --git a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/widgeteventrouter/pages/WidgetEventRouterCard.ets b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/widgeteventrouter/pages/WidgetEventRouterCard.ets index 443c3334bca65d9f51f5806fe3690ed9ecd107b9..fa6aa48a2e06aa2b42ea3db58280fc5a3aacf60f 100644 --- a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/widgeteventrouter/pages/WidgetEventRouterCard.ets +++ b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/widgeteventrouter/pages/WidgetEventRouterCard.ets @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022-2023 Huawei Device Co., Ltd. + * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at diff --git a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/widgetimageupdate/pages/WidgetImageUpdateCard.ets b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/widgetimageupdate/pages/WidgetImageUpdateCard.ets index 4b5f2d3cd10ea76368dc74690cfad44fd604402b..56fb23d7c8c7b6b3311d6c2c383c4a16d32cc83b 100644 --- a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/widgetimageupdate/pages/WidgetImageUpdateCard.ets +++ b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/widgetimageupdate/pages/WidgetImageUpdateCard.ets @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022-2023 Huawei Device Co., Ltd. + * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -57,7 +57,8 @@ struct WidgetImageUpdateCard { }) }.width('100%').height('40%') .justifyContent(FlexAlign.Center) - }.width('100%').height('100%') + } + .width('100%').height('100%') .backgroundImage('memory://' + this.imgName) .backgroundImageSize(ImageSize.Cover) } else { diff --git a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/widgetpersistentdata/pages/WidgetPersistentDataCard.ets b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/widgetpersistentdata/pages/WidgetPersistentDataCard.ets index 492be67c22b9aedf9e156005dde8bb9cb2917298..641d15d8bbbd6ab8fcebd6ed4f3fbb17eaa8615f 100644 --- a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/widgetpersistentdata/pages/WidgetPersistentDataCard.ets +++ b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/widgetpersistentdata/pages/WidgetPersistentDataCard.ets @@ -1,5 +1,5 @@ /* - * Copyright (c) 2023 Huawei Device Co., Ltd. + * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the 'License'); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at diff --git a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/widgetprocessdata/pages/WidgetProcessDataCard.ets b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/widgetprocessdata/pages/WidgetProcessDataCard.ets index c3fdb7f6999fc671468ad29e3a5eaa6592c0a491..cb4018a70f44003f25a3bc91833a2ec0417bc03e 100644 --- a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/widgetprocessdata/pages/WidgetProcessDataCard.ets +++ b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/widgetprocessdata/pages/WidgetProcessDataCard.ets @@ -1,5 +1,5 @@ /* - * Copyright (c) 2023 Huawei Device Co., Ltd. + * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the 'License'); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -18,7 +18,8 @@ let storageProcess = new LocalStorage(); @Entry(storageProcess) @Component struct WidgetProcessDataCard { - @LocalStorageProp('datashareproxy://com.samples.widgetupdatebyproxy/weather') city: ResourceStr = $r('app.string.loading'); + @LocalStorageProp('datashareproxy://com.samples.widgetupdatebyproxy/weather') city: ResourceStr + = $r('app.string.loading'); build() { Column() { diff --git a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/widgetupdatebystatus/pages/WidgetUpdateByStatusCard.ets b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/widgetupdatebystatus/pages/WidgetUpdateByStatusCard.ets index a8d757b219c5cc2d28b32674522a09f24609a164..23c455cf59a9f98c5fd73b60fadfe7efa2573a9d 100644 --- a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/widgetupdatebystatus/pages/WidgetUpdateByStatusCard.ets +++ b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/widgetupdatebystatus/pages/WidgetUpdateByStatusCard.ets @@ -1,5 +1,5 @@ /* - * Copyright (c) 2023 Huawei Device Co., Ltd. + * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the 'License'); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at diff --git a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/widgetupdatecall/pages/WidgetUpdateCallCard.ets b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/widgetupdatecall/pages/WidgetUpdateCallCard.ets index 95f756b494cd668780c18efd84a1894f8b11398e..6877b2fa3aac6ffaf3bdc3ab6b58e835e559e6cc 100644 --- a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/widgetupdatecall/pages/WidgetUpdateCallCard.ets +++ b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/widgetupdatecall/pages/WidgetUpdateCallCard.ets @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022-2023 Huawei Device Co., Ltd. + * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at diff --git a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/widgetupdaterouter/pages/WidgetUpdateRouterCard.ets b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/widgetupdaterouter/pages/WidgetUpdateRouterCard.ets index f4eeba95cf93dd0e4915e4ab374079714df97e20..4ae5425b9992509e82ce5112b9492bcf054c3757 100644 --- a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/widgetupdaterouter/pages/WidgetUpdateRouterCard.ets +++ b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/ets/widgetupdaterouter/pages/WidgetUpdateRouterCard.ets @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022-2023 Huawei Device Co., Ltd. + * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at diff --git a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/js/WidgetJS/pages/index/index.css b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/js/WidgetJS/pages/index/index.css index 10743e1185cd7e520997f87c9ba02769a4edccd1..6a7c3b58b3fc473a40872d0dcb899f41fc6ea167 100644 --- a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/js/WidgetJS/pages/index/index.css +++ b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/js/WidgetJS/pages/index/index.css @@ -1,3 +1,18 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + .container { flex-direction: column; justify-content: center; diff --git a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/module.json5 b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/module.json5 index 11fea8127cc2b7929f08769ba29107595acd2357..55b29481366cb772720540e8caca9227602d3ab3 100644 --- a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/module.json5 +++ b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/module.json5 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022-2023 Huawei Device Co., Ltd. + * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at diff --git a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/resources/base/element/string.json b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/resources/base/element/string.json index 4fc4551b041f74a51dea33b0b7517584a1899c90..533ac494190ccfa4e5fe8bf3d804abebf460d40c 100644 --- a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/resources/base/element/string.json +++ b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/resources/base/element/string.json @@ -247,6 +247,14 @@ { "name": "to_be_refreshed", "value": "to be refreshed" + }, + { + "name": "refresh", + "value": "refresh" + }, + { + "name": "refresh_error", + "value": "refresh_error" } ] } \ No newline at end of file diff --git a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/resources/base/profile/form_updatebytime_config.json b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/resources/base/profile/form_updatebytime_config.json index f39db674cc4adfb7574a33d69fc8d78fded6146d..b84a54f2dbfeaf1e3c30a725fae9722aa5cd93bf 100644 --- a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/resources/base/profile/form_updatebytime_config.json +++ b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/resources/base/profile/form_updatebytime_config.json @@ -29,7 +29,7 @@ "autoDesignWidth": true }, "colorMode": "auto", - "isDefault": true, + "isDefault": false, "updateEnabled": true, "scheduledUpdateTime": "10:30", "updateDuration": 0, @@ -48,7 +48,7 @@ "autoDesignWidth": true }, "colorMode": "auto", - "isDefault": true, + "isDefault": false, "updateEnabled": true, "scheduledUpdateTime": "10:30", "updateDuration": 0, @@ -67,7 +67,7 @@ "autoDesignWidth": true }, "colorMode": "auto", - "isDefault": true, + "isDefault": false, "updateEnabled": true, "scheduledUpdateTime": "10:30", "updateDuration": 2, diff --git a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/resources/base/profile/form_widgetcallee_config.json b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/resources/base/profile/form_widgetcallee_config.json index f7b0fa850b6d4e7fb6397659a9c12020bd34e9a2..76684446af1f72650beaaf86ad0d39df4e903421 100644 --- a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/resources/base/profile/form_widgetcallee_config.json +++ b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/resources/base/profile/form_widgetcallee_config.json @@ -10,7 +10,7 @@ "autoDesignWidth": true }, "colorMode": "auto", - "isDefault": true, + "isDefault": false, "updateEnabled": true, "scheduledUpdateTime": "10:30", "updateDuration": 1, @@ -29,7 +29,7 @@ "autoDesignWidth": true }, "colorMode": "auto", - "isDefault": true, + "isDefault": false, "updateEnabled": true, "scheduledUpdateTime": "10:30", "updateDuration": 1, diff --git a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/resources/base/profile/main_pages.json b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/resources/base/profile/main_pages.json index 146f8e272060952ed0a87564aba94061ef23166f..c3fc4ac3fa87169dd3bdd3d54cf8255865e7b9b9 100644 --- a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/resources/base/profile/main_pages.json +++ b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/resources/base/profile/main_pages.json @@ -1,7 +1,7 @@ { "src": [ "pages/Index", - "pages/FunA", - "pages/FunB" + "funpages/FunA", + "funpages/FunB" ] } diff --git a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/resources/en_US/element/string.json b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/resources/en_US/element/string.json index da5fa085cd6ce4bceb65bf850235e54f4dafb624..35518607e89e873e670d67ee4c67b6e885921e1f 100644 --- a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/resources/en_US/element/string.json +++ b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/resources/en_US/element/string.json @@ -247,6 +247,14 @@ { "name": "imgName", "value": "imgName" + }, + { + "name": "refresh", + "value": "refresh" + }, + { + "name": "refresh_error", + "value": "refresh_error" } ] } \ No newline at end of file diff --git a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/resources/zh_CN/element/string.json b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/resources/zh_CN/element/string.json index fdaff91c5bc346a70229365e6296ad97c4f33453..71f00454f2624b2b1ba833d523ae1b34dfd33ac4 100644 --- a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/resources/zh_CN/element/string.json +++ b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/main/resources/zh_CN/element/string.json @@ -247,6 +247,14 @@ { "name": "to_be_refreshed", "value": "待刷新..." + }, + { + "name": "refresh", + "value": "刷新中..." + }, + { + "name": "refresh_error", + "value": "刷新失败" } ] } \ No newline at end of file diff --git a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/ohosTest/ets/test/Ability.test.ets b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/ohosTest/ets/test/Ability.test.ets index 9bfef3e8805951ef92e0748dd75175b086ceebfb..56d3515a0bc5215937c126263b691e05b6bc172b 100644 --- a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/ohosTest/ets/test/Ability.test.ets +++ b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/ohosTest/ets/test/Ability.test.ets @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022-2023 Huawei Device Co., Ltd. + * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -13,27 +13,29 @@ * limitations under the License. */ -import hilog from '@ohos.hilog'; -import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from '@ohos/hypium' +import { afterAll, afterEach, beforeAll, beforeEach, describe } from '@ohos/hypium'; export default function abilityTest() { - describe('ActsAbilityTest', function () { + describe('ActsAbilityTest', () => { // Defines a test suite. Two parameters are supported: test suite name and test suite function. - beforeAll(function () { + beforeAll(() => { // Presets an action, which is performed only once before all test cases of the test suite start. // This API supports only one parameter: preset action function. - }) - beforeEach(function () { + }); + + beforeEach(() => { // Presets an action, which is performed before each unit test case starts. // The number of execution times is the same as the number of test cases defined by **it**. // This API supports only one parameter: preset action function. - }) - afterEach(function () { + }); + + afterEach(() => { // Presets a clear action, which is performed after each unit test case ends. // The number of execution times is the same as the number of test cases defined by **it**. // This API supports only one parameter: clear action function. - }) - afterAll(function () { + }); + + afterAll(() => { // Presets a clear action, which is performed after all test cases of the test suite end. // This API supports only one parameter: clear action function. }) diff --git a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/ohosTest/ets/test/Form.test.ets b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/ohosTest/ets/test/Form.test.ets index e74527cbf63a2fda87b383254edfbbc6343cf1c1..965b2943c8030449b6ee23b8a115c029e2615a87 100644 --- a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/ohosTest/ets/test/Form.test.ets +++ b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/ohosTest/ets/test/Form.test.ets @@ -1,5 +1,5 @@ /* - * Copyright (c) 2023 Huawei Device Co., Ltd. + * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the 'License'); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -12,16 +12,17 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - -import { BusinessError } from '@ohos.base'; -import { describe, it, expect, beforeAll, afterAll } from '@ohos/hypium'; -import { Driver, ON, Component, MatchPattern } from '@ohos.UiTest'; -import abilityDelegatorRegistry from '@ohos.app.ability.abilityDelegatorRegistry'; -import hilog from '@ohos.hilog'; +import { abilityDelegatorRegistry, Driver, MatchPattern, ON } from '@kit.TestKit'; +import { beforeAll, describe, expect, it } from '@ohos/hypium'; +import { hilog } from '@kit.PerformanceAnalysisKit'; +import { BusinessError } from '@kit.BasicServicesKit'; const TAG = '[Sample_ServiceCard_Test]'; const DOMAIN = 0xF811; const BUNDLE = 'ServiceCard_'; +const DELAYTIME01 = 1000; +const DELAYTIME02 = 2000; +const DELAYTIME03 = 3000; let abilityDelegator = abilityDelegatorRegistry.getAbilityDelegator(); let resourceManager = abilityDelegator.getAppContext().resourceManager; let cardArkTsWidgetEventRouter = 'WidgetEventRouter'; @@ -53,7 +54,7 @@ export default function formTest() { beforeAll(async () => { // Exit the test interface to execute the test case await driver.pressHome(); - await driver.delayMs(1000); + await driver.delayMs(DELAYTIME01); }) /* @@ -66,7 +67,7 @@ export default function formTest() { */ it(BUNDLE + 'ArkTS_001', 0, async (done: Function) => { hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_001 begin'); - await driver.delayMs(3000); + await driver.delayMs(DELAYTIME01); // Confirm the number of cards on the desktop let cardArkTsCount = 0; await abilityDelegator.executeShellCommand("hidumper -s FormMgr -a '-n com.samples.stageservicewidgetcards'") @@ -81,11 +82,14 @@ export default function formTest() { .catch((err: BusinessError) => { hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_001 hilog err is: ' + JSON.stringify(err)); }); - await driver.delayMs(1000); + await driver.delayMs(DELAYTIME01); // Long click the application - await driver.assertComponentExist(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')), MatchPattern.CONTAINS)); - let app = await driver.findComponent(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')), MatchPattern.CONTAINS)); + await driver.assertComponentExist(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')), + MatchPattern.CONTAINS)); + let app = + await driver.findComponent(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')), + MatchPattern.CONTAINS)); // Get the text control border let rect = await app.getBounds(); @@ -95,32 +99,29 @@ export default function formTest() { let point = await app.getBoundsCenter(); await driver.longClick(point.x, point.y - height); hilog.info(DOMAIN, TAG, BUNDLE + `ArkTS_001 long click app, coordinate:(${point.x},` + `${point.y - height})`); - await driver.delayMs(1000); + await driver.delayMs(DELAYTIME02); // Add an ArkTs card to launcher - // let serviceCard = await driver.findComponent(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')))); await driver.assertComponentExist(ON.text('服务卡片', MatchPattern.CONTAINS)); let serviceCard = await driver.findComponent(ON.text('服务卡片', MatchPattern.CONTAINS)); await serviceCard.click(); hilog.info(DOMAIN, TAG, BUNDLE + `ArkTS_001 Start to fling cards)`); - await driver.delayMs(2000); - + await driver.delayMs(DELAYTIME02); for (let i = 0; i < 2; i++) { - await driver.fling({ - x: START_SLIDING_X, y: SLIDING_COORDINATE_Y - }, { - x: FINISH_SLIDING_X, y: SLIDING_COORDINATE_Y - }, 5, 500); - await driver.delayMs(2000); + await driver.swipe(START_SLIDING_X, SLIDING_COORDINATE_Y, FINISH_SLIDING_X, SLIDING_COORDINATE_Y, DELAYTIME03); + await driver.delayMs(DELAYTIME01); } // Click to add to desktop - // await driver.assertComponentExist(ON.text(await resourceManager.getStringValue($r('app.string.add_to_desktop')), MatchPattern.CONTAINS)); - // let addCard = await driver.findComponent(ON.text(await resourceManager.getStringValue($r('app.string.add_to_desktop')), MatchPattern.CONTAINS)); - // await addCard.click(); + await driver.assertComponentExist(ON.text(await resourceManager.getStringValue($r('app.string.add_to_desktop')), + MatchPattern.CONTAINS)); + let addCard = + await driver.findComponent(ON.text(await resourceManager.getStringValue($r('app.string.add_to_desktop')), + MatchPattern.CONTAINS)); + await addCard.click(); await driver.click(ADD_TO_DESKTOP_X, ADD_TO_DESKTOP_Y); hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_001 addCardToDesktop'); - await driver.delayMs(2000); + await driver.delayMs(DELAYTIME02); // Verify that only one card has been added let cardArkTsCountSecond = 0; @@ -129,7 +130,7 @@ export default function formTest() { hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_001 hilog data success'); let result = JSON.stringify(data); hilog.info(DOMAIN, TAG, BUNDLE + `ArkTS_001 getFormData data: ${JSON.stringify(data)}`); - cardArkTsCountSecond = result.split(cardArkTsWidgetEventRouter).length - 1; + cardArkTsCountSecond = result.split(cardArkTsWidgetEventRouter).length; }) .catch((err: BusinessError) => { hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_001 hilog err is: ' + JSON.stringify(err)); @@ -137,10 +138,10 @@ export default function formTest() { // Assert an ArkTs card has been added hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_001 assert an ArkTs card has been added, ' + - 'cardArkTsCountSecond:' + cardArkTsCountSecond); + 'cardArkTsCountSecond:' + cardArkTsCountSecond); expect(cardArkTsCount + 1).assertEqual(cardArkTsCountSecond); hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_001 ' + (cardArkTsCountSecond - cardArkTsCount) + ' card has been added'); - await driver.delayMs(2000); + await driver.delayMs(DELAYTIME02); done(); }) @@ -154,7 +155,7 @@ export default function formTest() { */ it(BUNDLE + 'ArkTS_002', 0, async (done: Function) => { hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_002 begin'); - await driver.delayMs(3000); + await driver.delayMs(DELAYTIME03); // Confirm the number of cards on the desktop let cardArkTsCount = 0; await abilityDelegator.executeShellCommand("hidumper -s FormMgr -a '-n com.samples.stageservicewidgetcards'") @@ -169,11 +170,14 @@ export default function formTest() { .catch((err: BusinessError) => { hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_002 hilog err is: ' + JSON.stringify(err)); }); - await driver.delayMs(1000); + await driver.delayMs(DELAYTIME01); // Long click the application - await driver.assertComponentExist(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')), MatchPattern.CONTAINS)); - let app = await driver.findComponent(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')), MatchPattern.CONTAINS)); + await driver.assertComponentExist(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')), + MatchPattern.CONTAINS)); + let app = + await driver.findComponent(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')), + MatchPattern.CONTAINS)); // Get the text control border let rect = await app.getBounds(); // Calculate the height of the text control @@ -182,31 +186,23 @@ export default function formTest() { let point = await app.getBoundsCenter(); await driver.longClick(point.x, point.y - height); hilog.info(DOMAIN, TAG, BUNDLE + `ArkTS_002 long click app, coordinate:(${point.x},` + `${point.y - height})`); - await driver.delayMs(1000); + await driver.delayMs(DELAYTIME01); // Add an ArkTs card to launcher await driver.assertComponentExist(ON.text('服务卡片', MatchPattern.CONTAINS)); let serviceCard = await driver.findComponent(ON.text('服务卡片', MatchPattern.CONTAINS)); await serviceCard.click(); hilog.info(DOMAIN, TAG, BUNDLE + `ArkTS_002 Start to fling cards)`); - await driver.delayMs(2000); - + await driver.delayMs(DELAYTIME02); for (let i = 0; i < 12; i++) { - await driver.fling({ - x: START_SLIDING_X, y: SLIDING_COORDINATE_Y - }, { - x: FINISH_SLIDING_X, y: SLIDING_COORDINATE_Y - }, 5, 500); - await driver.delayMs(2000); + await driver.swipe(START_SLIDING_X, SLIDING_COORDINATE_Y, FINISH_SLIDING_X, SLIDING_COORDINATE_Y, DELAYTIME03); + await driver.delayMs(DELAYTIME01); } // Click to add to desktop - // await driver.assertComponentExist(ON.text(await resourceManager.getStringValue($r('app.string.add_to_desktop')), MatchPattern.CONTAINS)); - // let addCard = await driver.findComponent(ON.text(await resourceManager.getStringValue($r('app.string.add_to_desktop')), MatchPattern.CONTAINS)); - // await addCard.click(); await driver.click(ADD_TO_DESKTOP_X, ADD_TO_DESKTOP_Y); hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_002 addCardToDesktop'); - await driver.delayMs(2000); + await driver.delayMs(DELAYTIME02); // Verify that only one card has been added let cardArkTsCountSecond = 0; @@ -215,7 +211,7 @@ export default function formTest() { hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_002 hilog data success'); let result = JSON.stringify(data); hilog.info(DOMAIN, TAG, BUNDLE + `ArkTS_002 getFormData data: ${JSON.stringify(data)}`); - cardArkTsCountSecond = result.split(cardWidgetUpdateRouter).length - 1; + cardArkTsCountSecond = result.split(cardWidgetUpdateRouter).length; }) .catch((err: BusinessError) => { hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_002 hilog err is: ' + JSON.stringify(err)); @@ -223,10 +219,10 @@ export default function formTest() { // Assert an ArkTs card has been added hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_002 assert an ArkTs card has been added, ' + - 'cardArkTsCountSecond:' + cardArkTsCountSecond); + 'cardArkTsCountSecond:' + cardArkTsCountSecond); expect(cardArkTsCount + 1).assertEqual(cardArkTsCountSecond); hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_002 ' + (cardArkTsCountSecond - cardArkTsCount) + ' card has been added'); - await driver.delayMs(2000); + await driver.delayMs(DELAYTIME02); done(); }) @@ -240,7 +236,7 @@ export default function formTest() { */ it(BUNDLE + 'ArkTS_003', 0, async (done: Function) => { hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_003 begin'); - await driver.delayMs(3000); + await driver.delayMs(DELAYTIME03); // Confirm the number of cards on the desktop let cardArkTsCount = 0; await abilityDelegator.executeShellCommand("hidumper -s FormMgr -a '-n com.samples.stageservicewidgetcards'") @@ -255,11 +251,14 @@ export default function formTest() { .catch((err: BusinessError) => { hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_003 hilog err is: ' + JSON.stringify(err)); }); - await driver.delayMs(1000); + await driver.delayMs(DELAYTIME01); // Long click the application - await driver.assertComponentExist(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')), MatchPattern.CONTAINS)); - let app = await driver.findComponent(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')), MatchPattern.CONTAINS)); + await driver.assertComponentExist(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')), + MatchPattern.CONTAINS)); + let app = + await driver.findComponent(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')), + MatchPattern.CONTAINS)); // Get the text control border let rect = await app.getBounds(); // Calculate the height of the text control @@ -268,31 +267,23 @@ export default function formTest() { let point = await app.getBoundsCenter(); await driver.longClick(point.x, point.y - height); hilog.info(DOMAIN, TAG, BUNDLE + `ArkTS_003 long click app, coordinate:(${point.x},` + `${point.y - height})`); - await driver.delayMs(1000); + await driver.delayMs(DELAYTIME01); // Add an ArkTs card to launcher - // let serviceCard = await driver.findComponent(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')))); await driver.assertComponentExist(ON.text('服务卡片', MatchPattern.CONTAINS)); let serviceCard = await driver.findComponent(ON.text('服务卡片', MatchPattern.CONTAINS)); await serviceCard.click(); hilog.info(DOMAIN, TAG, BUNDLE + `ArkTS_003 Start to fling cards)`); - await driver.delayMs(2000); - + await driver.delayMs(DELAYTIME02); for (let i = 0; i < 3; i++) { - await driver.fling({ - x: START_SLIDING_X, y: SLIDING_COORDINATE_Y - }, { - x: FINISH_SLIDING_X, y: SLIDING_COORDINATE_Y - }, 5, 500); - await driver.delayMs(2000); + await driver.swipe(START_SLIDING_X, SLIDING_COORDINATE_Y, FINISH_SLIDING_X, SLIDING_COORDINATE_Y, DELAYTIME03); + await driver.delayMs(DELAYTIME01); } + // Click to add to desktop - // await driver.assertComponentExist(ON.text(await resourceManager.getStringValue($r('app.string.add_to_desktop')), MatchPattern.CONTAINS)); - // let addCard = await driver.findComponent(ON.text(await resourceManager.getStringValue($r('app.string.add_to_desktop')), MatchPattern.CONTAINS)); - // await addCard.click(); await driver.click(ADD_TO_DESKTOP_X, ADD_TO_DESKTOP_Y); hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_003 addCardToDesktop'); - await driver.delayMs(2000); + await driver.delayMs(DELAYTIME02); // Verify that only one card has been added let cardArkTsCountSecond = 0; @@ -301,7 +292,7 @@ export default function formTest() { hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_003 hilog data success'); let result = JSON.stringify(data); hilog.info(DOMAIN, TAG, BUNDLE + `ArkTS_003 getFormData data: ${JSON.stringify(data)}`); - cardArkTsCountSecond = result.split(cardUpdateByMessage).length - 1; + cardArkTsCountSecond = result.split(cardUpdateByMessage).length; }) .catch((err: BusinessError) => { hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_003 hilog err is: ' + JSON.stringify(err)); @@ -309,10 +300,10 @@ export default function formTest() { // Assert an ArkTs card has been added hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_003 assert an ArkTs card has been added, ' + - 'cardArkTsCountSecond:' + cardArkTsCountSecond); + 'cardArkTsCountSecond:' + cardArkTsCountSecond); expect(cardArkTsCount + 1).assertEqual(cardArkTsCountSecond); hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_003 ' + (cardArkTsCountSecond - cardArkTsCount) + ' card has been added'); - await driver.delayMs(2000); + await driver.delayMs(DELAYTIME02); done(); }) @@ -326,7 +317,7 @@ export default function formTest() { */ it(BUNDLE + 'ArkTS_004', 0, async (done: Function) => { hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_004 begin'); - await driver.delayMs(3000); + await driver.delayMs(DELAYTIME03); // Confirm the number of cards on the desktop let cardArkTsCount = 0; await abilityDelegator.executeShellCommand("hidumper -s FormMgr -a '-n com.samples.stageservicewidgetcards'") @@ -341,11 +332,14 @@ export default function formTest() { .catch((err: BusinessError) => { hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_004 hilog err is: ' + JSON.stringify(err)); }); - await driver.delayMs(1000); + await driver.delayMs(DELAYTIME01); // Long click the application - await driver.assertComponentExist(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')), MatchPattern.CONTAINS)); - let app = await driver.findComponent(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')), MatchPattern.CONTAINS)); + await driver.assertComponentExist(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')), + MatchPattern.CONTAINS)); + let app = + await driver.findComponent(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')), + MatchPattern.CONTAINS)); // Get the text control border let rect = await app.getBounds(); // Calculate the height of the text control @@ -354,30 +348,22 @@ export default function formTest() { let point = await app.getBoundsCenter(); await driver.longClick(point.x, point.y - height); hilog.info(DOMAIN, TAG, BUNDLE + `ArkTS_004 long click app, coordinate:(${point.x},` + `${point.y - height})`); - await driver.delayMs(1000); + await driver.delayMs(DELAYTIME01); // Add an ArkTs card to launcher - // let serviceCard = await driver.findComponent(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')))); await driver.assertComponentExist(ON.text('服务卡片', MatchPattern.CONTAINS)); let serviceCard = await driver.findComponent(ON.text('服务卡片', MatchPattern.CONTAINS)); await serviceCard.click(); hilog.info(DOMAIN, TAG, BUNDLE + `ArkTS_004 Start to fling cards)`); - await driver.delayMs(2000); + await driver.delayMs(DELAYTIME02); - await driver.fling({ - x: START_SLIDING_X, y: SLIDING_COORDINATE_Y - }, { - x: FINISH_SLIDING_X, y: SLIDING_COORDINATE_Y - }, 5, 500); - await driver.delayMs(2000); + await driver.swipe(START_SLIDING_X, SLIDING_COORDINATE_Y, FINISH_SLIDING_X, SLIDING_COORDINATE_Y, DELAYTIME03); + await driver.delayMs(DELAYTIME01); // Click to add to desktop - // await driver.assertComponentExist(ON.text(await resourceManager.getStringValue($r('app.string.add_to_desktop')), MatchPattern.CONTAINS)); - // let addCard = await driver.findComponent(ON.text(await resourceManager.getStringValue($r('app.string.add_to_desktop')), MatchPattern.CONTAINS)); - // await addCard.click(); await driver.click(ADD_TO_DESKTOP_X, ADD_TO_DESKTOP_Y); hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_004 addCardToDesktop'); - await driver.delayMs(2000); + await driver.delayMs(DELAYTIME02); // Verify that only one card has been added let cardArkTsCountSecond = 0; @@ -386,7 +372,7 @@ export default function formTest() { hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_004 hilog data success'); let result = JSON.stringify(data); hilog.info(DOMAIN, TAG, BUNDLE + `ArkTS_004 getFormData data: ${JSON.stringify(data)}`); - cardArkTsCountSecond = result.split(cardCustomCanvasDrawing).length - 1; + cardArkTsCountSecond = result.split(cardCustomCanvasDrawing).length; }) .catch((err: BusinessError) => { hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_004 hilog err is: ' + JSON.stringify(err)); @@ -394,10 +380,10 @@ export default function formTest() { // Assert an ArkTs card has been added hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_004 assert an ArkTs card has been added, ' + - 'cardArkTsCountSecond:' + cardArkTsCountSecond); + 'cardArkTsCountSecond:' + cardArkTsCountSecond); expect(cardArkTsCount + 1).assertEqual(cardArkTsCountSecond); hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_004 ' + (cardArkTsCountSecond - cardArkTsCount) + ' card has been added'); - await driver.delayMs(2000); + await driver.delayMs(DELAYTIME02); done(); }) @@ -411,7 +397,7 @@ export default function formTest() { */ it(BUNDLE + 'ArkTS_005', 0, async (done: Function) => { hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_005 begin'); - await driver.delayMs(3000); + await driver.delayMs(DELAYTIME03); // Confirm the number of cards on the desktop let cardArkTsCount = 0; await abilityDelegator.executeShellCommand("hidumper -s FormMgr -a '-n com.samples.stageservicewidgetcards'") @@ -426,11 +412,14 @@ export default function formTest() { .catch((err: BusinessError) => { hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_005 hilog err is: ' + JSON.stringify(err)); }); - await driver.delayMs(1000); + await driver.delayMs(DELAYTIME01); // Long click the application - await driver.assertComponentExist(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')), MatchPattern.CONTAINS)); - let app = await driver.findComponent(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')), MatchPattern.CONTAINS)); + await driver.assertComponentExist(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')), + MatchPattern.CONTAINS)); + let app = + await driver.findComponent(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')), + MatchPattern.CONTAINS)); // Get the text control border let rect = await app.getBounds(); // Calculate the height of the text control @@ -439,20 +428,16 @@ export default function formTest() { let point = await app.getBoundsCenter(); await driver.longClick(point.x, point.y - height); hilog.info(DOMAIN, TAG, BUNDLE + `ArkTS_005 long click app, coordinate:(${point.x},` + `${point.y - height})`); - await driver.delayMs(1000); + await driver.delayMs(DELAYTIME01); // Add an ArkTs card to launcher - // let serviceCard = await driver.findComponent(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')))); await driver.assertComponentExist(ON.text('服务卡片', MatchPattern.CONTAINS)); let serviceCard = await driver.findComponent(ON.text('服务卡片', MatchPattern.CONTAINS)); await serviceCard.click(); hilog.info(DOMAIN, TAG, BUNDLE + `ArkTS_005 Start to fling cards)`); - await driver.delayMs(2000); + await driver.delayMs(DELAYTIME02); // Click to add to desktop - // await driver.assertComponentExist(ON.text(await resourceManager.getStringValue($r('app.string.add_to_desktop')), MatchPattern.CONTAINS)); - // let addCard = await driver.findComponent(ON.text(await resourceManager.getStringValue($r('app.string.add_to_desktop')), MatchPattern.CONTAINS)); - // await addCard.click(); await driver.click(ADD_TO_DESKTOP_X, ADD_TO_DESKTOP_Y); hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_005 addCardToDesktop'); await driver.delayMs(2000); @@ -464,7 +449,7 @@ export default function formTest() { hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_005 hilog data success'); let result = JSON.stringify(data); hilog.info(DOMAIN, TAG, BUNDLE + `ArkTS_005 getFormData data: ${JSON.stringify(data)}`); - cardArkTsCountSecond = result.split(cardAttrAnimation).length - 1; + cardArkTsCountSecond = result.split(cardAttrAnimation).length; }) .catch((err: BusinessError) => { hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_005 hilog err is: ' + JSON.stringify(err)); @@ -472,10 +457,10 @@ export default function formTest() { // Assert an ArkTs card has been added hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_005 assert an ArkTs card has been added, ' + - 'cardArkTsCountSecond:' + cardArkTsCountSecond); + 'cardArkTsCountSecond:' + cardArkTsCountSecond); expect(cardArkTsCount + 1).assertEqual(cardArkTsCountSecond); hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_005 ' + (cardArkTsCountSecond - cardArkTsCount) + ' card has been added'); - await driver.delayMs(2000); + await driver.delayMs(DELAYTIME02); done(); }) @@ -489,7 +474,7 @@ export default function formTest() { */ it(BUNDLE + 'ArkTS_006', 0, async (done: Function) => { hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_006 begin'); - await driver.delayMs(3000); + await driver.delayMs(DELAYTIME03); // Confirm the number of cards on the desktop let cardArkTsCount = 0; await abilityDelegator.executeShellCommand("hidumper -s FormMgr -a '-n com.samples.stageservicewidgetcards'") @@ -504,11 +489,14 @@ export default function formTest() { .catch((err: BusinessError) => { hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_006 hilog err is: ' + JSON.stringify(err)); }); - await driver.delayMs(1000); + await driver.delayMs(DELAYTIME01); // Long click the application - await driver.assertComponentExist(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')), MatchPattern.CONTAINS)); - let app = await driver.findComponent(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')), MatchPattern.CONTAINS)); + await driver.assertComponentExist(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')), + MatchPattern.CONTAINS)); + let app = + await driver.findComponent(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')), + MatchPattern.CONTAINS)); // Get the text control border let rect = await app.getBounds(); // Calculate the height of the text control @@ -517,31 +505,22 @@ export default function formTest() { let point = await app.getBoundsCenter(); await driver.longClick(point.x, point.y - height); hilog.info(DOMAIN, TAG, BUNDLE + `ArkTS_006 long click app, coordinate:(${point.x},` + `${point.y - height})`); - await driver.delayMs(1000); + await driver.delayMs(DELAYTIME01); // Add an ArkTs card to launcher - // let serviceCard = await driver.findComponent(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')))); let serviceCard = await driver.findComponent(ON.text('服务卡片', MatchPattern.CONTAINS)); await serviceCard.click(); hilog.info(DOMAIN, TAG, BUNDLE + `ArkTS_006 Start to fling cards)`); - await driver.delayMs(2000); - + await driver.delayMs(DELAYTIME02); for (let i = 0; i < 7; i++) { - await driver.fling({ - x: START_SLIDING_X, y: SLIDING_COORDINATE_Y - }, { - x: FINISH_SLIDING_X, y: SLIDING_COORDINATE_Y - }, 5, 500); - await driver.delayMs(1000); + await driver.swipe(START_SLIDING_X, SLIDING_COORDINATE_Y, FINISH_SLIDING_X, SLIDING_COORDINATE_Y, DELAYTIME03); + await driver.delayMs(DELAYTIME01); } /// Click to add to desktop - // await driver.assertComponentExist(ON.text(await resourceManager.getStringValue($r('app.string.add_to_desktop')), MatchPattern.CONTAINS)); - // let addCard = await driver.findComponent(ON.text(await resourceManager.getStringValue($r('app.string.add_to_desktop')), MatchPattern.CONTAINS)); - // await addCard.click(); await driver.click(ADD_TO_DESKTOP_X, ADD_TO_DESKTOP_Y); hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_006 addCardToDesktop'); - await driver.delayMs(2000); + await driver.delayMs(DELAYTIME02); // Verify that only one card has been added let cardArkTsCountSecond = 0; @@ -550,7 +529,7 @@ export default function formTest() { hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_006 hilog data success'); let result = JSON.stringify(data); hilog.info(DOMAIN, TAG, BUNDLE + `ArkTS_006 getFormData data: ${JSON.stringify(data)}`); - cardArkTsCountSecond = result.split(cardWidgetUpdateByStatus).length - 1; + cardArkTsCountSecond = result.split(cardWidgetUpdateByStatus).length; }) .catch((err: BusinessError) => { hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_006 hilog err is: ' + JSON.stringify(err)); @@ -558,10 +537,10 @@ export default function formTest() { // Assert an ArkTs card has been added hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_006 assert an ArkTs card has been added, ' + - 'cardArkTsCountSecond:' + cardArkTsCountSecond); + 'cardArkTsCountSecond:' + cardArkTsCountSecond); expect(cardArkTsCount + 1).assertEqual(cardArkTsCountSecond); hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_006 ' + (cardArkTsCountSecond - cardArkTsCount) + ' card has been added'); - await driver.delayMs(1000); + await driver.delayMs(DELAYTIME01); done(); }) @@ -575,7 +554,7 @@ export default function formTest() { */ it(BUNDLE + 'ArkTS_007', 0, async (done: Function) => { hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_007 begin'); - await driver.delayMs(3000); + await driver.delayMs(DELAYTIME03); // Confirm the number of cards on the desktop let cardArkTsCount = 0; await abilityDelegator.executeShellCommand("hidumper -s FormMgr -a '-n com.samples.stageservicewidgetcards'") @@ -590,11 +569,14 @@ export default function formTest() { .catch((err: BusinessError) => { hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_007 hilog err is: ' + JSON.stringify(err)); }); - await driver.delayMs(1000); + await driver.delayMs(DELAYTIME01); // Long click the application - await driver.assertComponentExist(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')), MatchPattern.CONTAINS)); - let app = await driver.findComponent(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')), MatchPattern.CONTAINS)); + await driver.assertComponentExist(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')), + MatchPattern.CONTAINS)); + let app = + await driver.findComponent(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')), + MatchPattern.CONTAINS)); // Get the text control border let rect = await app.getBounds(); // Calculate the height of the text control @@ -603,30 +585,22 @@ export default function formTest() { let point = await app.getBoundsCenter(); await driver.longClick(point.x, point.y - height); hilog.info(DOMAIN, TAG, BUNDLE + `ArkTS_007 long click app, coordinate:(${point.x},` + `${point.y - height})`); - await driver.delayMs(1000); + await driver.delayMs(DELAYTIME01); // Add an ArkTs card to launcher - // let serviceCard = await driver.findComponent(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')))); let serviceCard = await driver.findComponent(ON.text('服务卡片', MatchPattern.CONTAINS)); await serviceCard.click(); hilog.info(DOMAIN, TAG, BUNDLE + `ArkTS_007 Start to fling cards)`); - await driver.delayMs(2000); - + await driver.delayMs(DELAYTIME02); for (let i = 0; i < 6; i++) { - await driver.fling({ - x: START_SLIDING_X, y: SLIDING_COORDINATE_Y - }, { - x: FINISH_SLIDING_X, y: SLIDING_COORDINATE_Y - }, 5, 500); - await driver.delayMs(1000); + await driver.swipe(START_SLIDING_X, SLIDING_COORDINATE_Y, FINISH_SLIDING_X, SLIDING_COORDINATE_Y, DELAYTIME03); + await driver.delayMs(DELAYTIME01); } + // Click to add to desktop - // await driver.assertComponentExist(ON.text(await resourceManager.getStringValue($r('app.string.add_to_desktop')), MatchPattern.CONTAINS)); - // let addCard = await driver.findComponent(ON.text(await resourceManager.getStringValue($r('app.string.add_to_desktop')), MatchPattern.CONTAINS)); - // await addCard.click(); await driver.click(ADD_TO_DESKTOP_X, ADD_TO_DESKTOP_Y); hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_007 addCardToDesktop'); - await driver.delayMs(2000); + await driver.delayMs(DELAYTIME02); // Verify that only one card has been added let cardArkTsCountSecond = 0; @@ -635,7 +609,7 @@ export default function formTest() { hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_007 hilog data success'); let result = JSON.stringify(data); hilog.info(DOMAIN, TAG, BUNDLE + `ArkTS_007 getFormData data: ${JSON.stringify(data)}`); - cardArkTsCountSecond = result.split(cardWidgetProcessData).length - 1; + cardArkTsCountSecond = result.split(cardWidgetProcessData).length; }) .catch((err: BusinessError) => { hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_007 hilog err is: ' + JSON.stringify(err)); @@ -643,10 +617,10 @@ export default function formTest() { // Assert an ArkTs card has been added hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_007 assert an ArkTs card has been added, ' + - 'cardArkTsCountSecond:' + cardArkTsCountSecond); + 'cardArkTsCountSecond:' + cardArkTsCountSecond); expect(cardArkTsCount + 1).assertEqual(cardArkTsCountSecond); hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_007 ' + (cardArkTsCountSecond - cardArkTsCount) + ' card has been added'); - await driver.delayMs(1000); + await driver.delayMs(DELAYTIME01); done(); }) @@ -660,7 +634,7 @@ export default function formTest() { */ it(BUNDLE + 'ArkTS_008', 0, async (done: Function) => { hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_008 begin'); - await driver.delayMs(3000); + await driver.delayMs(DELAYTIME03); // Confirm the number of cards on the desktop let cardArkTsCount = 0; await abilityDelegator.executeShellCommand("hidumper -s FormMgr -a '-n com.samples.stageservicewidgetcards'") @@ -675,11 +649,14 @@ export default function formTest() { .catch((err: BusinessError) => { hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_008 hilog err is: ' + JSON.stringify(err)); }); - await driver.delayMs(1000); + await driver.delayMs(DELAYTIME01); // Long click the application - await driver.assertComponentExist(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')), MatchPattern.CONTAINS)); - let app = await driver.findComponent(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')), MatchPattern.CONTAINS)); + await driver.assertComponentExist(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')), + MatchPattern.CONTAINS)); + let app = + await driver.findComponent(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')), + MatchPattern.CONTAINS)); // Get the text control border let rect = await app.getBounds(); // Calculate the height of the text control @@ -688,32 +665,23 @@ export default function formTest() { let point = await app.getBoundsCenter(); await driver.longClick(point.x, point.y - height); hilog.info(DOMAIN, TAG, BUNDLE + `ArkTS_008 long click app, coordinate:(${point.x},` + `${point.y - height})`); - await driver.delayMs(1000); + await driver.delayMs(DELAYTIME01); // Add an ArkTs card to launcher - // let serviceCard = await driver.findComponent(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')))); await driver.assertComponentExist(ON.text('服务卡片', MatchPattern.CONTAINS)); let serviceCard = await driver.findComponent(ON.text('服务卡片', MatchPattern.CONTAINS)); await serviceCard.click(); hilog.info(DOMAIN, TAG, BUNDLE + `ArkTS_008 Start to fling cards)`); - await driver.delayMs(2000); - + await driver.delayMs(DELAYTIME02); for (let i = 0; i < 8; i++) { - await driver.fling({ - x: START_SLIDING_X, y: SLIDING_COORDINATE_Y - }, { - x: FINISH_SLIDING_X, y: SLIDING_COORDINATE_Y - }, 5, 500); - await driver.delayMs(1000); + await driver.swipe(START_SLIDING_X, SLIDING_COORDINATE_Y, FINISH_SLIDING_X, SLIDING_COORDINATE_Y, DELAYTIME03); + await driver.delayMs(DELAYTIME01); } // Click to add to desktop - // await driver.assertComponentExist(ON.text(await resourceManager.getStringValue($r('app.string.add_to_desktop')), MatchPattern.CONTAINS)); - // let addCard = await driver.findComponent(ON.text(await resourceManager.getStringValue($r('app.string.add_to_desktop')), MatchPattern.CONTAINS)); - // await addCard.click(); await driver.click(ADD_TO_DESKTOP_X, ADD_TO_DESKTOP_Y); hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_008 addCardToDesktop'); - await driver.delayMs(2000); + await driver.delayMs(DELAYTIME02); // Verify that only one card has been added let cardArkTsCountSecond = 0; @@ -722,7 +690,7 @@ export default function formTest() { hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_008 hilog data success'); let result = JSON.stringify(data); hilog.info(DOMAIN, TAG, BUNDLE + `ArkTS_008 getFormData data: ${JSON.stringify(data)}`); - cardArkTsCountSecond = result.split(cardUpdateDuration).length - 1; + cardArkTsCountSecond = result.split(cardUpdateDuration).length; }) .catch((err: BusinessError) => { hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_008 hilog err is: ' + JSON.stringify(err)); @@ -730,10 +698,10 @@ export default function formTest() { // Assert an ArkTs card has been added hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_008 assert an ArkTs card has been added, ' + - 'cardArkTsCountSecond:' + cardArkTsCountSecond); + 'cardArkTsCountSecond:' + cardArkTsCountSecond); expect(cardArkTsCount + 1).assertEqual(cardArkTsCountSecond); hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_008 ' + (cardArkTsCountSecond - cardArkTsCount) + ' card has been added'); - await driver.delayMs(1000); + await driver.delayMs(DELAYTIME01); done(); }) @@ -747,7 +715,7 @@ export default function formTest() { */ it(BUNDLE + 'ArkTS_009', 0, async (done: Function) => { hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_009 begin'); - await driver.delayMs(3000); + await driver.delayMs(DELAYTIME03); // Confirm the number of cards on the desktop let cardArkTsCount = 0; await abilityDelegator.executeShellCommand("hidumper -s FormMgr -a '-n com.samples.stageservicewidgetcards'") @@ -762,11 +730,14 @@ export default function formTest() { .catch((err: BusinessError) => { hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_009 hilog err is: ' + JSON.stringify(err)); }); - await driver.delayMs(1000); + await driver.delayMs(DELAYTIME01); // Long click the application - await driver.assertComponentExist(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')), MatchPattern.CONTAINS)); - let app = await driver.findComponent(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')), MatchPattern.CONTAINS)); + await driver.assertComponentExist(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')), + MatchPattern.CONTAINS)); + let app = + await driver.findComponent(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')), + MatchPattern.CONTAINS)); // Get the text control border let rect = await app.getBounds(); // Calculate the height of the text control @@ -775,32 +746,23 @@ export default function formTest() { let point = await app.getBoundsCenter(); await driver.longClick(point.x, point.y - height); hilog.info(DOMAIN, TAG, BUNDLE + `ArkTS_009 long click app, coordinate:(${point.x},` + `${point.y - height})`); - await driver.delayMs(1000); + await driver.delayMs(DELAYTIME01); // Add an ArkTs card to launcher - // let serviceCard = await driver.findComponent(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')))); await driver.assertComponentExist(ON.text('服务卡片', MatchPattern.CONTAINS)); let serviceCard = await driver.findComponent(ON.text('服务卡片', MatchPattern.CONTAINS)); await serviceCard.click(); hilog.info(DOMAIN, TAG, BUNDLE + `ArkTS_009 Start to fling cards)`); - await driver.delayMs(2000); - + await driver.delayMs(DELAYTIME02); for (let i = 0; i < 9; i++) { - await driver.fling({ - x: START_SLIDING_X, y: SLIDING_COORDINATE_Y - }, { - x: FINISH_SLIDING_X, y: SLIDING_COORDINATE_Y - }, 5, 500); - await driver.delayMs(2000); + await driver.swipe(START_SLIDING_X, SLIDING_COORDINATE_Y, FINISH_SLIDING_X, SLIDING_COORDINATE_Y, DELAYTIME03); + await driver.delayMs(DELAYTIME01); } // Click to add to desktop - // await driver.assertComponentExist(ON.text(await resourceManager.getStringValue($r('app.string.add_to_desktop')), MatchPattern.CONTAINS)); - // let addCard = await driver.findComponent(ON.text(await resourceManager.getStringValue($r('app.string.add_to_desktop')), MatchPattern.CONTAINS)); - // await addCard.click(); await driver.click(ADD_TO_DESKTOP_X, ADD_TO_DESKTOP_Y); hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_009 addCardToDesktop'); - await driver.delayMs(2000); + await driver.delayMs(DELAYTIME02); // Verify that only one card has been added let cardArkTsCountSecond = 0; @@ -809,7 +771,7 @@ export default function formTest() { hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_009 hilog data success'); let result = JSON.stringify(data); hilog.info(DOMAIN, TAG, BUNDLE + `ArkTS_009 getFormData data: ${JSON.stringify(data)}`); - cardArkTsCountSecond = result.split(cardScheduledUpdateTime).length - 1; + cardArkTsCountSecond = result.split(cardScheduledUpdateTime).length; }) .catch((err: BusinessError) => { hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_009 hilog err is: ' + JSON.stringify(err)); @@ -817,10 +779,10 @@ export default function formTest() { // Assert an ArkTs card has been added hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_009 assert an ArkTs card has been added, ' + - 'cardArkTsCountSecond:' + cardArkTsCountSecond); + 'cardArkTsCountSecond:' + cardArkTsCountSecond); expect(cardArkTsCount + 1).assertEqual(cardArkTsCountSecond); hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_009 ' + (cardArkTsCountSecond - cardArkTsCount) + ' card has been added'); - await driver.delayMs(2000); + await driver.delayMs(DELAYTIME02); done(); }) @@ -834,7 +796,7 @@ export default function formTest() { */ it(BUNDLE + 'ArkTS_010', 0, async (done: Function) => { hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_010 begin'); - await driver.delayMs(3000); + await driver.delayMs(DELAYTIME03); // Confirm the number of cards on the desktop let cardArkTsCount = 0; await abilityDelegator.executeShellCommand("hidumper -s FormMgr -a '-n com.samples.stageservicewidgetcards'") @@ -849,11 +811,14 @@ export default function formTest() { .catch((err: BusinessError) => { hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_010 hilog err is: ' + JSON.stringify(err)); }); - await driver.delayMs(1000); + await driver.delayMs(DELAYTIME01); // Long click the application - await driver.assertComponentExist(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')), MatchPattern.CONTAINS)); - let app = await driver.findComponent(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')), MatchPattern.CONTAINS)); + await driver.assertComponentExist(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')), + MatchPattern.CONTAINS)); + let app = + await driver.findComponent(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')), + MatchPattern.CONTAINS)); // Get the text control border let rect = await app.getBounds(); // Calculate the height of the text control @@ -862,32 +827,23 @@ export default function formTest() { let point = await app.getBoundsCenter(); await driver.longClick(point.x, point.y - height); hilog.info(DOMAIN, TAG, BUNDLE + `ArkTS_010 long click app, coordinate:(${point.x},` + `${point.y - height})`); - await driver.delayMs(1000); + await driver.delayMs(DELAYTIME01); // Add an ArkTs card to launcher - // let serviceCard = await driver.findComponent(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')))); await driver.assertComponentExist(ON.text('服务卡片', MatchPattern.CONTAINS)); let serviceCard = await driver.findComponent(ON.text('服务卡片', MatchPattern.CONTAINS)); await serviceCard.click(); hilog.info(DOMAIN, TAG, BUNDLE + `ArkTS_010 Start to fling cards)`); - await driver.delayMs(2000); - + await driver.delayMs(DELAYTIME02); for (let i = 0; i < 10; i++) { - await driver.fling({ - x: START_SLIDING_X, y: SLIDING_COORDINATE_Y - }, { - x: FINISH_SLIDING_X, y: SLIDING_COORDINATE_Y - }, 5, 500); - await driver.delayMs(2000); + await driver.swipe(START_SLIDING_X, SLIDING_COORDINATE_Y, FINISH_SLIDING_X, SLIDING_COORDINATE_Y, DELAYTIME03); + await driver.delayMs(DELAYTIME01); } // Click to add to desktop - // await driver.assertComponentExist(ON.text(await resourceManager.getStringValue($r('app.string.add_to_desktop')), MatchPattern.CONTAINS)); - // let addCard = await driver.findComponent(ON.text(await resourceManager.getStringValue($r('app.string.add_to_desktop')), MatchPattern.CONTAINS)); - // await addCard.click(); await driver.click(ADD_TO_DESKTOP_X, ADD_TO_DESKTOP_Y); hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_010 addCardToDesktop'); - await driver.delayMs(2000); + await driver.delayMs(DELAYTIME02); // Verify that only one card has been added let cardArkTsCountSecond = 0; @@ -896,7 +852,7 @@ export default function formTest() { hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_010 hilog data success'); let result = JSON.stringify(data); hilog.info(DOMAIN, TAG, BUNDLE + `ArkTS_010 getFormData data: ${JSON.stringify(data)}`); - cardArkTsCountSecond = result.split(cardNextRefreshTimeCard).length - 1; + cardArkTsCountSecond = result.split(cardNextRefreshTimeCard).length; }) .catch((err: BusinessError) => { hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_010 hilog err is: ' + JSON.stringify(err)); @@ -904,10 +860,10 @@ export default function formTest() { // Assert an ArkTs card has been added hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_010 assert an ArkTs card has been added, ' + - 'cardArkTsCountSecond:' + cardArkTsCountSecond); + 'cardArkTsCountSecond:' + cardArkTsCountSecond); expect(cardArkTsCount + 1).assertEqual(cardArkTsCountSecond); hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_010 ' + (cardArkTsCountSecond - cardArkTsCount) + ' card has been added'); - await driver.delayMs(2000); + await driver.delayMs(DELAYTIME02); done(); }) @@ -921,7 +877,7 @@ export default function formTest() { */ it(BUNDLE + 'ArkTS_011', 0, async (done: Function) => { hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_011 begin'); - await driver.delayMs(3000); + await driver.delayMs(DELAYTIME03); // Confirm the number of cards on the desktop let cardArkTsCount = 0; await abilityDelegator.executeShellCommand("hidumper -s FormMgr -a '-n com.samples.stageservicewidgetcards'") @@ -936,11 +892,14 @@ export default function formTest() { .catch((err: BusinessError) => { hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_011 hilog err is: ' + JSON.stringify(err)); }); - await driver.delayMs(1000); + await driver.delayMs(DELAYTIME01); // Long click the application - await driver.assertComponentExist(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')), MatchPattern.CONTAINS)); - let app = await driver.findComponent(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')), MatchPattern.CONTAINS)); + await driver.assertComponentExist(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')), + MatchPattern.CONTAINS)); + let app = + await driver.findComponent(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')), + MatchPattern.CONTAINS)); // Get the text control border let rect = await app.getBounds(); // Calculate the height of the text control @@ -949,32 +908,23 @@ export default function formTest() { let point = await app.getBoundsCenter(); await driver.longClick(point.x, point.y - height); hilog.info(DOMAIN, TAG, BUNDLE + `ArkTS_011 long click app, coordinate:(${point.x},` + `${point.y - height})`); - await driver.delayMs(1000); + await driver.delayMs(DELAYTIME01); // Add an ArkTs card to launcher - // let serviceCard = await driver.findComponent(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')))); await driver.assertComponentExist(ON.text('服务卡片', MatchPattern.CONTAINS)); let serviceCard = await driver.findComponent(ON.text('服务卡片', MatchPattern.CONTAINS)); await serviceCard.click(); hilog.info(DOMAIN, TAG, BUNDLE + `ArkTS_011 Start to fling cards)`); - await driver.delayMs(2000); - + await driver.delayMs(DELAYTIME02); for (let i = 0; i < 11; i++) { - await driver.fling({ - x: START_SLIDING_X, y: SLIDING_COORDINATE_Y - }, { - x: FINISH_SLIDING_X, y: SLIDING_COORDINATE_Y - }, 5, 500); - await driver.delayMs(2000); + await driver.swipe(START_SLIDING_X, SLIDING_COORDINATE_Y, FINISH_SLIDING_X, SLIDING_COORDINATE_Y, DELAYTIME03); + await driver.delayMs(DELAYTIME01); } // Click to add to desktop - // await driver.assertComponentExist(ON.text(await resourceManager.getStringValue($r('app.string.add_to_desktop')), MatchPattern.CONTAINS)); - // let addCard = await driver.findComponent(ON.text(await resourceManager.getStringValue($r('app.string.add_to_desktop')), MatchPattern.CONTAINS)); - // await addCard.click(); await driver.click(ADD_TO_DESKTOP_X, ADD_TO_DESKTOP_Y); hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_011 addCardToDesktop'); - await driver.delayMs(2000); + await driver.delayMs(DELAYTIME02); // Verify that only one card has been added let cardArkTsCountSecond = 0; @@ -983,7 +933,7 @@ export default function formTest() { hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_011 hilog data success'); let result = JSON.stringify(data); hilog.info(DOMAIN, TAG, BUNDLE + `ArkTS_011 getFormData data: ${JSON.stringify(data)}`); - cardArkTsCountSecond = result.split(cardWidgetImageUpdate).length - 1; + cardArkTsCountSecond = result.split(cardWidgetImageUpdate).length; }) .catch((err: BusinessError) => { hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_011 hilog err is: ' + JSON.stringify(err)); @@ -991,10 +941,10 @@ export default function formTest() { // Assert an ArkTs card has been added hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_011 assert an ArkTs card has been added, ' + - 'cardArkTsCountSecond:' + cardArkTsCountSecond); + 'cardArkTsCountSecond:' + cardArkTsCountSecond); expect(cardArkTsCount + 1).assertEqual(cardArkTsCountSecond); hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_011 ' + (cardArkTsCountSecond - cardArkTsCount) + ' card has been added'); - await driver.delayMs(2000); + await driver.delayMs(DELAYTIME02); done(); }) @@ -1008,7 +958,7 @@ export default function formTest() { */ it(BUNDLE + 'ArkTS_012', 0, async (done: Function) => { hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_012 begin'); - await driver.delayMs(3000); + await driver.delayMs(DELAYTIME03); // Confirm the number of cards on the desktop let cardArkTsCount = 0; await abilityDelegator.executeShellCommand("hidumper -s FormMgr -a '-n com.samples.stageservicewidgetcards'") @@ -1023,11 +973,14 @@ export default function formTest() { .catch((err: BusinessError) => { hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_012 hilog err is: ' + JSON.stringify(err)); }); - await driver.delayMs(1000); + await driver.delayMs(DELAYTIME01); // Long click the application - await driver.assertComponentExist(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')), MatchPattern.CONTAINS)); - let app = await driver.findComponent(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')), MatchPattern.CONTAINS)); + await driver.assertComponentExist(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')), + MatchPattern.CONTAINS)); + let app = + await driver.findComponent(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')), + MatchPattern.CONTAINS)); // Get the text control border let rect = await app.getBounds(); // Calculate the height of the text control @@ -1036,32 +989,23 @@ export default function formTest() { let point = await app.getBoundsCenter(); await driver.longClick(point.x, point.y - height); hilog.info(DOMAIN, TAG, BUNDLE + `ArkTS_012 long click app, coordinate:(${point.x},` + `${point.y - height})`); - await driver.delayMs(1000); + await driver.delayMs(DELAYTIME01); // Add an ArkTs card to launcher - // let serviceCard = await driver.findComponent(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')))); await driver.assertComponentExist(ON.text('服务卡片', MatchPattern.CONTAINS)); let serviceCard = await driver.findComponent(ON.text('服务卡片', MatchPattern.CONTAINS)); await serviceCard.click(); hilog.info(DOMAIN, TAG, BUNDLE + `ArkTS_012 Start to fling cards)`); - await driver.delayMs(2000); - + await driver.delayMs(DELAYTIME02); for (let i = 0; i < 13; i++) { - await driver.fling({ - x: START_SLIDING_X, y: SLIDING_COORDINATE_Y - }, { - x: FINISH_SLIDING_X, y: SLIDING_COORDINATE_Y - }, 5, 500); - await driver.delayMs(2000); + await driver.swipe(START_SLIDING_X, SLIDING_COORDINATE_Y, FINISH_SLIDING_X, SLIDING_COORDINATE_Y, DELAYTIME03); + await driver.delayMs(DELAYTIME01); } // Click to add to desktop - // await driver.assertComponentExist(ON.text(await resourceManager.getStringValue($r('app.string.add_to_desktop')), MatchPattern.CONTAINS)); - // let addCard = await driver.findComponent(ON.text(await resourceManager.getStringValue($r('app.string.add_to_desktop')), MatchPattern.CONTAINS)); - // await addCard.click(); await driver.click(ADD_TO_DESKTOP_X, ADD_TO_DESKTOP_Y); hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_012 addCardToDesktop'); - await driver.delayMs(2000); + await driver.delayMs(DELAYTIME02); // Verify that only one card has been added let cardArkTsCountSecond = 0; @@ -1070,7 +1014,7 @@ export default function formTest() { hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_012 hilog data success'); let result = JSON.stringify(data); hilog.info(DOMAIN, TAG, BUNDLE + `ArkTS_012 getFormData data: ${JSON.stringify(data)}`); - cardArkTsCountSecond = result.split(cardWidgetEventCall).length - 1; + cardArkTsCountSecond = result.split(cardWidgetEventCall).length; }) .catch((err: BusinessError) => { hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_012 hilog err is: ' + JSON.stringify(err)); @@ -1078,10 +1022,10 @@ export default function formTest() { // Assert an ArkTs card has been added hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_012 assert an ArkTs card has been added, ' + - 'cardArkTsCountSecond:' + cardArkTsCountSecond); + 'cardArkTsCountSecond:' + cardArkTsCountSecond); expect(cardArkTsCount + 1).assertEqual(cardArkTsCountSecond); hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_012 ' + (cardArkTsCountSecond - cardArkTsCount) + ' card has been added'); - await driver.delayMs(2000); + await driver.delayMs(DELAYTIME02); done(); }) @@ -1095,7 +1039,7 @@ export default function formTest() { */ it(BUNDLE + 'ArkTS_013', 0, async (done: Function) => { hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_013 begin'); - await driver.delayMs(3000); + await driver.delayMs(DELAYTIME03); // Confirm the number of cards on the desktop let cardArkTsCount = 0; await abilityDelegator.executeShellCommand("hidumper -s FormMgr -a '-n com.samples.stageservicewidgetcards'") @@ -1110,11 +1054,14 @@ export default function formTest() { .catch((err: BusinessError) => { hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_013 hilog err is: ' + JSON.stringify(err)); }); - await driver.delayMs(1000); + await driver.delayMs(DELAYTIME01); // Long click the application - await driver.assertComponentExist(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')), MatchPattern.CONTAINS)); - let app = await driver.findComponent(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')), MatchPattern.CONTAINS)); + await driver.assertComponentExist(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')), + MatchPattern.CONTAINS)); + let app = + await driver.findComponent(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')), + MatchPattern.CONTAINS)); // Get the text control border let rect = await app.getBounds(); // Calculate the height of the text control @@ -1123,32 +1070,24 @@ export default function formTest() { let point = await app.getBoundsCenter(); await driver.longClick(point.x, point.y - height); hilog.info(DOMAIN, TAG, BUNDLE + `ArkTS_013 long click app, coordinate:(${point.x},` + `${point.y - height})`); - await driver.delayMs(1000); + await driver.delayMs(DELAYTIME01); // Add an ArkTs card to launcher - // let serviceCard = await driver.findComponent(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')))); await driver.assertComponentExist(ON.text('服务卡片', MatchPattern.CONTAINS)); let serviceCard = await driver.findComponent(ON.text('服务卡片', MatchPattern.CONTAINS)); await serviceCard.click(); hilog.info(DOMAIN, TAG, BUNDLE + `ArkTS_013 Start to fling cards)`); - await driver.delayMs(2000); + await driver.delayMs(DELAYTIME02); for (let i = 0; i < 14; i++) { - await driver.fling({ - x: START_SLIDING_X, y: SLIDING_COORDINATE_Y - }, { - x: FINISH_SLIDING_X, y: SLIDING_COORDINATE_Y - }, 5, 500); - await driver.delayMs(1000); + await driver.swipe(START_SLIDING_X, SLIDING_COORDINATE_Y, FINISH_SLIDING_X, SLIDING_COORDINATE_Y, DELAYTIME03); + await driver.delayMs(DELAYTIME01); } // Click to add to desktop - // await driver.assertComponentExist(ON.text(await resourceManager.getStringValue($r('app.string.add_to_desktop')), MatchPattern.CONTAINS)); - // let addCard = await driver.findComponent(ON.text(await resourceManager.getStringValue($r('app.string.add_to_desktop')), MatchPattern.CONTAINS)); - // await addCard.click(); await driver.click(ADD_TO_DESKTOP_X, ADD_TO_DESKTOP_Y); hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_013 addCardToDesktop'); - await driver.delayMs(2000); + await driver.delayMs(DELAYTIME02); // Verify that only one card has been added let cardArkTsCountSecond = 0; @@ -1157,7 +1096,7 @@ export default function formTest() { hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_013 hilog data success'); let result = JSON.stringify(data); hilog.info(DOMAIN, TAG, BUNDLE + `ArkTS_013 getFormData data: ${JSON.stringify(data)}`); - cardArkTsCountSecond = result.split(cardWidgetUpdateCallCard).length - 1; + cardArkTsCountSecond = result.split(cardWidgetUpdateCallCard).length; }) .catch((err: BusinessError) => { hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_013 hilog err is: ' + JSON.stringify(err)); @@ -1165,10 +1104,10 @@ export default function formTest() { // Assert an ArkTs card has been added hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_013 assert an ArkTs card has been added, ' + - 'cardArkTsCountSecond:' + cardArkTsCountSecond); + 'cardArkTsCountSecond:' + cardArkTsCountSecond); expect(cardArkTsCount + 1).assertEqual(cardArkTsCountSecond); hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_013 ' + (cardArkTsCountSecond - cardArkTsCount) + ' card has been added'); - await driver.delayMs(2000); + await driver.delayMs(DELAYTIME02); done(); }) @@ -1182,7 +1121,7 @@ export default function formTest() { */ it(BUNDLE + 'ArkTS_014', 0, async (done: Function) => { hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_014 begin'); - await driver.delayMs(3000); + await driver.delayMs(DELAYTIME03); // Confirm the number of cards on the desktop let cardArkTsCount = 0; await abilityDelegator.executeShellCommand("hidumper -s FormMgr -a '-n com.samples.stageservicewidgetcards'") @@ -1197,11 +1136,14 @@ export default function formTest() { .catch((err: BusinessError) => { hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_014 hilog err is: ' + JSON.stringify(err)); }); - await driver.delayMs(1000); + await driver.delayMs(DELAYTIME01); // Long click the application - await driver.assertComponentExist(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')), MatchPattern.CONTAINS)); - let app = await driver.findComponent(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')), MatchPattern.CONTAINS)); + await driver.assertComponentExist(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')), + MatchPattern.CONTAINS)); + let app = + await driver.findComponent(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')), + MatchPattern.CONTAINS)); // Get the text control border let rect = await app.getBounds(); // Calculate the height of the text control @@ -1210,32 +1152,23 @@ export default function formTest() { let point = await app.getBoundsCenter(); await driver.longClick(point.x, point.y - height); hilog.info(DOMAIN, TAG, BUNDLE + `ArkTS_014 long click app, coordinate:(${point.x},` + `${point.y - height})`); - await driver.delayMs(1000); + await driver.delayMs(DELAYTIME01); // Add an ArkTs card to launcher - // let serviceCard = await driver.findComponent(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')))); await driver.assertComponentExist(ON.text('服务卡片', MatchPattern.CONTAINS)); let serviceCard = await driver.findComponent(ON.text('服务卡片', MatchPattern.CONTAINS)); await serviceCard.click(); hilog.info(DOMAIN, TAG, BUNDLE + `ArkTS_014 Start to fling cards)`); - await driver.delayMs(2000); - + await driver.delayMs(DELAYTIME02); for (let i = 0; i < 5; i++) { - await driver.fling({ - x: START_SLIDING_X, y: SLIDING_COORDINATE_Y - }, { - x: FINISH_SLIDING_X, y: SLIDING_COORDINATE_Y - }, 5, 500); - await driver.delayMs(1000); + await driver.swipe(START_SLIDING_X, SLIDING_COORDINATE_Y, FINISH_SLIDING_X, SLIDING_COORDINATE_Y, DELAYTIME03); + await driver.delayMs(DELAYTIME01); } // Click to add to desktop - // await driver.assertComponentExist(ON.text(await resourceManager.getStringValue($r('app.string.add_to_desktop')), MatchPattern.CONTAINS)); - // let addCard = await driver.findComponent(ON.text(await resourceManager.getStringValue($r('app.string.add_to_desktop')), MatchPattern.CONTAINS)); - // await addCard.click(); await driver.click(ADD_TO_DESKTOP_X, ADD_TO_DESKTOP_Y); hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_014 addCardToDesktop'); - await driver.delayMs(2000); + await driver.delayMs(DELAYTIME02); // Verify that only one card has been added let cardArkTsCountSecond = 0; @@ -1244,7 +1177,7 @@ export default function formTest() { hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_014 hilog data success'); let result = JSON.stringify(data); hilog.info(DOMAIN, TAG, BUNDLE + `ArkTS_014 getFormData data: ${JSON.stringify(data)}`); - cardArkTsCountSecond = result.split(cardWidgetPersistentData).length - 1; + cardArkTsCountSecond = result.split(cardWidgetPersistentData).length; }) .catch((err: BusinessError) => { hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_014 hilog err is: ' + JSON.stringify(err)); @@ -1252,10 +1185,10 @@ export default function formTest() { // Assert an ArkTs card has been added hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_014 assert an ArkTs card has been added, ' + - 'cardArkTsCountSecond:' + cardArkTsCountSecond); + 'cardArkTsCountSecond:' + cardArkTsCountSecond); expect(cardArkTsCount + 1).assertEqual(cardArkTsCountSecond); hilog.info(DOMAIN, TAG, BUNDLE + 'ArkTS_014 ' + (cardArkTsCountSecond - cardArkTsCount) + ' card has been added'); - await driver.delayMs(2000); + await driver.delayMs(DELAYTIME02); done(); }) @@ -1269,7 +1202,7 @@ export default function formTest() { */ it(BUNDLE + 'JS_UI_001', 0, async (done: Function) => { hilog.info(DOMAIN, TAG, BUNDLE + 'JS_UI_001 begin'); - await driver.delayMs(3000); + await driver.delayMs(DELAYTIME03); // Confirm the number of cards on the desktop let cardArkTsCount = 0; await abilityDelegator.executeShellCommand("hidumper -s FormMgr -a '-n com.samples.stageservicewidgetcards'") @@ -1284,11 +1217,14 @@ export default function formTest() { .catch((err: BusinessError) => { hilog.info(DOMAIN, TAG, BUNDLE + 'JS_UI_001 hilog err is: ' + JSON.stringify(err)); }); - await driver.delayMs(1000); + await driver.delayMs(DELAYTIME01); // Long click the application - await driver.assertComponentExist(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')), MatchPattern.CONTAINS)); - let app = await driver.findComponent(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')), MatchPattern.CONTAINS)); + await driver.assertComponentExist(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')), + MatchPattern.CONTAINS)); + let app = + await driver.findComponent(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')), + MatchPattern.CONTAINS)); // Get the text control border let rect = await app.getBounds(); // Calculate the height of the text control @@ -1297,31 +1233,22 @@ export default function formTest() { let point = await app.getBoundsCenter(); await driver.longClick(point.x, point.y - height); hilog.info(DOMAIN, TAG, BUNDLE + `JS_UI_001 long click app, coordinate:(${point.x},` + `${point.y - height})`); - await driver.delayMs(1000); + await driver.delayMs(DELAYTIME01); // Add an ArkTs card to launcher - // let serviceCard = await driver.findComponent(ON.text(await resourceManager.getStringValue($r('app.string.EntryAbility_label')))); await driver.assertComponentExist(ON.text('服务卡片', MatchPattern.CONTAINS)); let serviceCard = await driver.findComponent(ON.text('服务卡片', MatchPattern.CONTAINS)); await serviceCard.click(); hilog.info(DOMAIN, TAG, BUNDLE + `JS_UI_001 Start to fling cards)`); - await driver.delayMs(2000); - + await driver.delayMs(DELAYTIME02); for (let i = 0; i < 4; i++) { - await driver.fling({ - x: START_SLIDING_X, y: SLIDING_COORDINATE_Y - }, { - x: FINISH_SLIDING_X, y: SLIDING_COORDINATE_Y - }, 5, 500); - await driver.delayMs(1000); + await driver.swipe(START_SLIDING_X, SLIDING_COORDINATE_Y, FINISH_SLIDING_X, SLIDING_COORDINATE_Y, DELAYTIME03); + await driver.delayMs(DELAYTIME01); } // Click to add to desktop - // await driver.assertComponentExist(ON.text(await resourceManager.getStringValue($r('app.string.add_to_desktop')), MatchPattern.CONTAINS)); - // let addCard = await driver.findComponent(ON.text(await resourceManager.getStringValue($r('app.string.add_to_desktop')), MatchPattern.CONTAINS)); - // await addCard.click(); await driver.click(ADD_TO_DESKTOP_X, ADD_TO_DESKTOP_Y); hilog.info(DOMAIN, TAG, BUNDLE + 'JS_UI_001 addCardToDesktop'); - await driver.delayMs(2000); + await driver.delayMs(DELAYTIME02); // Verify that only one card has been added let cardArkTsCountSecond = 0; @@ -1330,7 +1257,7 @@ export default function formTest() { hilog.info(DOMAIN, TAG, BUNDLE + 'JS_UI_001 hilog data success'); let result = JSON.stringify(data); hilog.info(DOMAIN, TAG, BUNDLE + `JS_UI_001 getFormData data: ${JSON.stringify(data)}`); - cardArkTsCountSecond = result.split(cardWidgetJS).length - 1; + cardArkTsCountSecond = result.split(cardWidgetJS).length; }) .catch((err: BusinessError) => { hilog.info(DOMAIN, TAG, BUNDLE + 'JS_UI_001 hilog err is: ' + JSON.stringify(err)); @@ -1338,10 +1265,10 @@ export default function formTest() { // Assert an ArkTs card has been added hilog.info(DOMAIN, TAG, BUNDLE + 'JS_UI_001 assert an ArkTs card has been added, ' + - 'cardArkTsCountSecond:' + cardArkTsCountSecond); + 'cardArkTsCountSecond:' + cardArkTsCountSecond); expect(cardArkTsCount + 1).assertEqual(cardArkTsCountSecond); hilog.info(DOMAIN, TAG, BUNDLE + 'JS_UI_001 ' + (cardArkTsCountSecond - cardArkTsCount) + ' card has been added'); - await driver.delayMs(2000); + await driver.delayMs(DELAYTIME02); done(); }) }) diff --git a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/ohosTest/ets/test/List.test.ets b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/ohosTest/ets/test/List.test.ets index ea517fe01375c83a88725d1544567bcf4f71b4b9..a8789baa8b9d29edc068ae967ceea1f0ae06403f 100644 --- a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/ohosTest/ets/test/List.test.ets +++ b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/ohosTest/ets/test/List.test.ets @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022-2023 Huawei Device Co., Ltd. + * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at diff --git a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/ohosTest/ets/testability/TestAbility.ets b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/ohosTest/ets/testability/TestAbility.ets index 3a3a4d37963e065d7514ffc02b2ad7f06051ae20..97946b1429da25c87d08bced3953e833564f3991 100644 --- a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/ohosTest/ets/testability/TestAbility.ets +++ b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/ohosTest/ets/testability/TestAbility.ets @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022-2023 Huawei Device Co., Ltd. + * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -30,8 +30,8 @@ export default class TestAbility extends UIAbility { hilog.info(DOMAIN, TAG, '%{public}s', 'TestAbility onCreate'); hilog.info(DOMAIN, TAG, '%{public}s', 'want param:' + JSON.stringify(want) ?? ''); hilog.info(DOMAIN, TAG, '%{public}s', 'launchParam:' + JSON.stringify(launchParam) ?? ''); - let abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator() - let abilityDelegatorArguments = AbilityDelegatorRegistry.getArguments() + let abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator(); + let abilityDelegatorArguments = AbilityDelegatorRegistry.getArguments(); hilog.info(DOMAIN, TAG, '%{public}s', 'start run testcase!!!'); Hypium.hypiumTest(abilityDelegator, abilityDelegatorArguments, testsuite) } diff --git a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/ohosTest/ets/testability/pages/Index.ets b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/ohosTest/ets/testability/pages/Index.ets index 145019d56ada819c53d40fab5c7f32826a24d445..e51a2c0dbead8de8a7ae34376df806de38cd897d 100644 --- a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/ohosTest/ets/testability/pages/Index.ets +++ b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/ohosTest/ets/testability/pages/Index.ets @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022-2023 Huawei Device Co., Ltd. + * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -22,7 +22,7 @@ struct Index { hilog.info(0x0000, 'testTag', '%{public}s', 'TestAbility index aboutToAppear'); } - @State message: string = 'Hello World' + @State message: string = 'Hello World'; build() { Row() { diff --git a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/ohosTest/ets/testrunner/OpenHarmonyTestRunner.ts b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/ohosTest/ets/testrunner/OpenHarmonyTestRunner.ts index 0c508e9d5376fb4e1160aa93be98e3fa9e92bbf6..e596d6bccb38a168430f2824de91511dafc397c0 100644 --- a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/ohosTest/ets/testrunner/OpenHarmonyTestRunner.ts +++ b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/ohosTest/ets/testrunner/OpenHarmonyTestRunner.ts @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022-2023 Huawei Device Co., Ltd. + * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -37,18 +37,18 @@ export default class OpenHarmonyTestRunner implements TestRunner { async onRun() { hilog.info(DOMAIN, TAG, '%{public}s', 'OpenHarmonyTestRunner onRun run'); - abilityDelegatorArguments = AbilityDelegatorRegistry.getArguments() - abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator() - var testAbilityName = abilityDelegatorArguments.bundleName + '.TestAbility' + abilityDelegatorArguments = AbilityDelegatorRegistry.getArguments(); + abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator(); + var testAbilityName = abilityDelegatorArguments.bundleName + '.TestAbility'; let lMonitor = { abilityName: testAbilityName, onAbilityCreate: onAbilityCreateCallback, }; - abilityDelegator.addAbilityMonitor(lMonitor, addAbilityMonitorCallback) - var cmd = 'aa start -d 0 -a TestAbility' + ' -b ' + abilityDelegatorArguments.bundleName - var debug = abilityDelegatorArguments.parameters['-D'] + abilityDelegator.addAbilityMonitor(lMonitor, addAbilityMonitorCallback); + var cmd = 'aa start -d 0 -a TestAbility' + ' -b ' + abilityDelegatorArguments.bundleName; + var debug = abilityDelegatorArguments.parameters['-D']; if (debug === 'true') { - cmd += ' -D' + cmd += ' -D'; } hilog.info(DOMAIN, TAG, 'cmd : %{public}s', cmd); abilityDelegator.executeShellCommand(cmd, diff --git a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/ohosTest/module.json5 b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/ohosTest/module.json5 index 2ef997b8574dd39472a480f0651741eb235834f8..844f74db440e0217e8f1944d9049c4955e991841 100644 --- a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/ohosTest/module.json5 +++ b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/entry/src/ohosTest/module.json5 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022-2023 Huawei Device Co., Ltd. + * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at diff --git a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/hvigor/hvigor-config.json5 b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/hvigor/hvigor-config.json5 index 7fcecec159df6759049a45fd7a400d1fbaffeab4..fb46e3c8b88913607a4c8a9160b5e4ad0bb5f62e 100644 --- a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/hvigor/hvigor-config.json5 +++ b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/hvigor/hvigor-config.json5 @@ -1,21 +1,20 @@ /* - * Copyright (c) 2024 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the 'License'); + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an 'AS IS' BASIS, + * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ { - "hvigorVersion": "4.0.2", + "modelVersion": "5.0.0", "dependencies": { - "@ohos/hvigor-ohos-plugin": "4.0.2" } } \ No newline at end of file diff --git a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/hvigor/hvigor-wrapper.js b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/hvigor/hvigor-wrapper.js deleted file mode 100644 index 199ce97ed6d57c75cc156e8277eecefbc107f05f..0000000000000000000000000000000000000000 --- a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/hvigor/hvigor-wrapper.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";var u=require("path"),D=require("os"),e=require("fs"),t=require("crypto"),r=require("child_process"),n="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},i={},C={},F=n&&n.__importDefault||function(u){return u&&u.__esModule?u:{default:u}};Object.defineProperty(C,"__esModule",{value:!0}),C.maxPathLength=C.isMac=C.isLinux=C.isWindows=void 0;const E=F(D),A="Windows_NT",o="Darwin";function a(){return E.default.type()===A}function c(){return E.default.type()===o}C.isWindows=a,C.isLinux=function(){return"Linux"===E.default.type()},C.isMac=c,C.maxPathLength=function(){return c()?1016:a()?259:4095},function(e){var t=n&&n.__createBinding||(Object.create?function(u,D,e,t){void 0===t&&(t=e);var r=Object.getOwnPropertyDescriptor(D,e);r&&!("get"in r?!D.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return D[e]}}),Object.defineProperty(u,t,r)}:function(u,D,e,t){void 0===t&&(t=e),u[t]=D[e]}),r=n&&n.__setModuleDefault||(Object.create?function(u,D){Object.defineProperty(u,"default",{enumerable:!0,value:D})}:function(u,D){u.default=D}),i=n&&n.__importStar||function(u){if(u&&u.__esModule)return u;var D={};if(null!=u)for(var e in u)"default"!==e&&Object.prototype.hasOwnProperty.call(u,e)&&t(D,u,e);return r(D,u),D};Object.defineProperty(e,"__esModule",{value:!0}),e.WORK_SPACE=e.HVIGOR_PROJECT_WRAPPER_HOME=e.HVIGOR_PROJECT_ROOT_DIR=e.HVIGOR_PROJECT_CACHES_HOME=e.HVIGOR_PNPM_STORE_PATH=e.HVIGOR_WRAPPER_PNPM_SCRIPT_PATH=e.PROJECT_CACHES=e.HVIGOR_WRAPPER_TOOLS_HOME=e.HVIGOR_USER_HOME=e.DEFAULT_PACKAGE_JSON=e.DEFAULT_HVIGOR_CONFIG_JSON_FILE_NAME=e.PNPM=e.HVIGOR=e.NPM_TOOL=e.PNPM_TOOL=e.HVIGOR_ENGINE_PACKAGE_NAME=void 0;const F=i(D),E=i(u),A=C;e.HVIGOR_ENGINE_PACKAGE_NAME="@ohos/hvigor",e.PNPM_TOOL=(0,A.isWindows)()?"pnpm.cmd":"pnpm",e.NPM_TOOL=(0,A.isWindows)()?"npm.cmd":"npm",e.HVIGOR="hvigor",e.PNPM="pnpm",e.DEFAULT_HVIGOR_CONFIG_JSON_FILE_NAME="hvigor-config.json5",e.DEFAULT_PACKAGE_JSON="package.json",e.HVIGOR_USER_HOME=E.resolve(F.homedir(),".hvigor"),e.HVIGOR_WRAPPER_TOOLS_HOME=E.resolve(e.HVIGOR_USER_HOME,"wrapper","tools"),e.PROJECT_CACHES="project_caches",e.HVIGOR_WRAPPER_PNPM_SCRIPT_PATH=E.resolve(e.HVIGOR_WRAPPER_TOOLS_HOME,"node_modules",".bin",e.PNPM_TOOL),e.HVIGOR_PNPM_STORE_PATH=E.resolve(e.HVIGOR_USER_HOME,"caches"),e.HVIGOR_PROJECT_CACHES_HOME=E.resolve(e.HVIGOR_USER_HOME,e.PROJECT_CACHES),e.HVIGOR_PROJECT_ROOT_DIR=process.cwd(),e.HVIGOR_PROJECT_WRAPPER_HOME=E.resolve(e.HVIGOR_PROJECT_ROOT_DIR,e.HVIGOR),e.WORK_SPACE="workspace"}(i);var s={},l={};Object.defineProperty(l,"__esModule",{value:!0}),l.logInfoPrintConsole=l.logErrorAndExit=void 0,l.logErrorAndExit=function(u){u instanceof Error?console.error(u.message):console.error(u),process.exit(-1)},l.logInfoPrintConsole=function(u){console.log(u)};var B=n&&n.__createBinding||(Object.create?function(u,D,e,t){void 0===t&&(t=e);var r=Object.getOwnPropertyDescriptor(D,e);r&&!("get"in r?!D.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return D[e]}}),Object.defineProperty(u,t,r)}:function(u,D,e,t){void 0===t&&(t=e),u[t]=D[e]}),d=n&&n.__setModuleDefault||(Object.create?function(u,D){Object.defineProperty(u,"default",{enumerable:!0,value:D})}:function(u,D){u.default=D}),f=n&&n.__importStar||function(u){if(u&&u.__esModule)return u;var D={};if(null!=u)for(var e in u)"default"!==e&&Object.prototype.hasOwnProperty.call(u,e)&&B(D,u,e);return d(D,u),D};Object.defineProperty(s,"__esModule",{value:!0});var _=s.executeBuild=void 0;const p=f(e),O=f(u),h=l;_=s.executeBuild=function(u){const D=O.resolve(u,"node_modules","@ohos","hvigor","bin","hvigor.js");try{const u=p.realpathSync(D);require(u)}catch(e){(0,h.logErrorAndExit)(`Error: ENOENT: no such file ${D},delete ${u} and retry.`)}};var P={},v={};!function(u){var D=n&&n.__importDefault||function(u){return u&&u.__esModule?u:{default:u}};Object.defineProperty(u,"__esModule",{value:!0}),u.hashFile=u.hash=u.createHash=void 0;const r=D(t),i=D(e);u.createHash=(u="MD5")=>r.default.createHash(u);u.hash=(D,e)=>(0,u.createHash)(e).update(D).digest("hex");u.hashFile=(D,e)=>{if(i.default.existsSync(D))return(0,u.hash)(i.default.readFileSync(D,"utf-8"),e)}}(v);var g={},m={},R={};Object.defineProperty(R,"__esModule",{value:!0}),R.Unicode=void 0;class y{}R.Unicode=y,y.SPACE_SEPARATOR=/[\u1680\u2000-\u200A\u202F\u205F\u3000]/,y.ID_START=/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]/,y.ID_CONTINUE=/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u09FC\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9-\u0AFF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D00-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF9\u1D00-\u1DF9\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDE00-\uDE3E\uDE47\uDE50-\uDE83\uDE86-\uDE99\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/,Object.defineProperty(m,"__esModule",{value:!0}),m.JudgeUtil=void 0;const I=R;m.JudgeUtil=class{static isIgnoreChar(u){return"string"==typeof u&&("\t"===u||"\v"===u||"\f"===u||" "===u||" "===u||"\ufeff"===u||"\n"===u||"\r"===u||"\u2028"===u||"\u2029"===u)}static isSpaceSeparator(u){return"string"==typeof u&&I.Unicode.SPACE_SEPARATOR.test(u)}static isIdStartChar(u){return"string"==typeof u&&(u>="a"&&u<="z"||u>="A"&&u<="Z"||"$"===u||"_"===u||I.Unicode.ID_START.test(u))}static isIdContinueChar(u){return"string"==typeof u&&(u>="a"&&u<="z"||u>="A"&&u<="Z"||u>="0"&&u<="9"||"$"===u||"_"===u||"‌"===u||"‍"===u||I.Unicode.ID_CONTINUE.test(u))}static isDigitWithoutZero(u){return/[1-9]/.test(u)}static isDigit(u){return"string"==typeof u&&/[0-9]/.test(u)}static isHexDigit(u){return"string"==typeof u&&/[0-9A-Fa-f]/.test(u)}};var N=n&&n.__importDefault||function(u){return u&&u.__esModule?u:{default:u}};Object.defineProperty(g,"__esModule",{value:!0}),g.parseJsonText=g.parseJsonFile=void 0;const b=N(e),S=N(D),w=N(u),H=m;var x;!function(u){u[u.Char=0]="Char",u[u.EOF=1]="EOF",u[u.Identifier=2]="Identifier"}(x||(x={}));let M,T,V,G,j,J,W="start",U=[],L=0,$=1,k=0,K=!1,z="default",q="'",Z=1;function X(u,D=!1){T=String(u),W="start",U=[],L=0,$=1,k=0,G=void 0,K=D;do{M=Q(),nu[W]()}while("eof"!==M.type);return G}function Q(){for(z="default",j="",q="'",Z=1;;){J=Y();const u=Du[z]();if(u)return u}}function Y(){if(T[L])return String.fromCodePoint(T.codePointAt(L))}function uu(){const u=Y();return"\n"===u?($++,k=0):u?k+=u.length:k++,u&&(L+=u.length),u}g.parseJsonFile=function(u,D=!1,e="utf-8"){const t=b.default.readFileSync(w.default.resolve(u),{encoding:e});try{return X(t,D)}catch(D){if(D instanceof SyntaxError){const e=D.message.split("at");if(2===e.length)throw new Error(`${e[0].trim()}${S.default.EOL}\t at ${u}:${e[1].trim()}`)}throw new Error(`${u} is not in valid JSON/JSON5 format.`)}},g.parseJsonText=X;const Du={default(){switch(J){case"/":return uu(),void(z="comment");case void 0:return uu(),eu("eof")}if(!H.JudgeUtil.isIgnoreChar(J)&&!H.JudgeUtil.isSpaceSeparator(J))return Du[W]();uu()},start(){z="value"},beforePropertyName(){switch(J){case"$":case"_":return j=uu(),void(z="identifierName");case"\\":return uu(),void(z="identifierNameStartEscape");case"}":return eu("punctuator",uu());case'"':case"'":return q=J,uu(),void(z="string")}if(H.JudgeUtil.isIdStartChar(J))return j+=uu(),void(z="identifierName");throw Eu(x.Char,uu())},afterPropertyName(){if(":"===J)return eu("punctuator",uu());throw Eu(x.Char,uu())},beforePropertyValue(){z="value"},afterPropertyValue(){switch(J){case",":case"}":return eu("punctuator",uu())}throw Eu(x.Char,uu())},beforeArrayValue(){if("]"===J)return eu("punctuator",uu());z="value"},afterArrayValue(){switch(J){case",":case"]":return eu("punctuator",uu())}throw Eu(x.Char,uu())},end(){throw Eu(x.Char,uu())},comment(){switch(J){case"*":return uu(),void(z="multiLineComment");case"/":return uu(),void(z="singleLineComment")}throw Eu(x.Char,uu())},multiLineComment(){switch(J){case"*":return uu(),void(z="multiLineCommentAsterisk");case void 0:throw Eu(x.Char,uu())}uu()},multiLineCommentAsterisk(){switch(J){case"*":return void uu();case"/":return uu(),void(z="default");case void 0:throw Eu(x.Char,uu())}uu(),z="multiLineComment"},singleLineComment(){switch(J){case"\n":case"\r":case"\u2028":case"\u2029":return uu(),void(z="default");case void 0:return uu(),eu("eof")}uu()},value(){switch(J){case"{":case"[":return eu("punctuator",uu());case"n":return uu(),tu("ull"),eu("null",null);case"t":return uu(),tu("rue"),eu("boolean",!0);case"f":return uu(),tu("alse"),eu("boolean",!1);case"-":case"+":return"-"===uu()&&(Z=-1),void(z="numerical");case".":case"0":case"I":case"N":return void(z="numerical");case'"':case"'":return q=J,uu(),j="",void(z="string")}if(void 0===J||!H.JudgeUtil.isDigitWithoutZero(J))throw Eu(x.Char,uu());z="numerical"},numerical(){switch(J){case".":return j=uu(),void(z="decimalPointLeading");case"0":return j=uu(),void(z="zero");case"I":return uu(),tu("nfinity"),eu("numeric",Z*(1/0));case"N":return uu(),tu("aN"),eu("numeric",NaN)}if(void 0!==J&&H.JudgeUtil.isDigitWithoutZero(J))return j=uu(),void(z="decimalInteger");throw Eu(x.Char,uu())},zero(){switch(J){case".":case"e":case"E":return void(z="decimal");case"x":case"X":return j+=uu(),void(z="hexadecimal")}return eu("numeric",0)},decimalInteger(){switch(J){case".":case"e":case"E":return void(z="decimal")}if(!H.JudgeUtil.isDigit(J))return eu("numeric",Z*Number(j));j+=uu()},decimal(){switch(J){case".":j+=uu(),z="decimalFraction";break;case"e":case"E":j+=uu(),z="decimalExponent"}},decimalPointLeading(){if(H.JudgeUtil.isDigit(J))return j+=uu(),void(z="decimalFraction");throw Eu(x.Char,uu())},decimalFraction(){switch(J){case"e":case"E":return j+=uu(),void(z="decimalExponent")}if(!H.JudgeUtil.isDigit(J))return eu("numeric",Z*Number(j));j+=uu()},decimalExponent(){switch(J){case"+":case"-":return j+=uu(),void(z="decimalExponentSign")}if(H.JudgeUtil.isDigit(J))return j+=uu(),void(z="decimalExponentInteger");throw Eu(x.Char,uu())},decimalExponentSign(){if(H.JudgeUtil.isDigit(J))return j+=uu(),void(z="decimalExponentInteger");throw Eu(x.Char,uu())},decimalExponentInteger(){if(!H.JudgeUtil.isDigit(J))return eu("numeric",Z*Number(j));j+=uu()},hexadecimal(){if(H.JudgeUtil.isHexDigit(J))return j+=uu(),void(z="hexadecimalInteger");throw Eu(x.Char,uu())},hexadecimalInteger(){if(!H.JudgeUtil.isHexDigit(J))return eu("numeric",Z*Number(j));j+=uu()},identifierNameStartEscape(){if("u"!==J)throw Eu(x.Char,uu());uu();const u=ru();switch(u){case"$":case"_":break;default:if(!H.JudgeUtil.isIdStartChar(u))throw Eu(x.Identifier)}j+=u,z="identifierName"},identifierName(){switch(J){case"$":case"_":case"‌":case"‍":return void(j+=uu());case"\\":return uu(),void(z="identifierNameEscape")}if(!H.JudgeUtil.isIdContinueChar(J))return eu("identifier",j);j+=uu()},identifierNameEscape(){if("u"!==J)throw Eu(x.Char,uu());uu();const u=ru();switch(u){case"$":case"_":case"‌":case"‍":break;default:if(!H.JudgeUtil.isIdContinueChar(u))throw Eu(x.Identifier)}j+=u,z="identifierName"},string(){switch(J){case"\\":return uu(),void(j+=function(){const u=Y(),D=function(){switch(Y()){case"b":return uu(),"\b";case"f":return uu(),"\f";case"n":return uu(),"\n";case"r":return uu(),"\r";case"t":return uu(),"\t";case"v":return uu(),"\v"}return}();if(D)return D;switch(u){case"0":if(uu(),H.JudgeUtil.isDigit(Y()))throw Eu(x.Char,uu());return"\0";case"x":return uu(),function(){let u="",D=Y();if(!H.JudgeUtil.isHexDigit(D))throw Eu(x.Char,uu());if(u+=uu(),D=Y(),!H.JudgeUtil.isHexDigit(D))throw Eu(x.Char,uu());return u+=uu(),String.fromCodePoint(parseInt(u,16))}();case"u":return uu(),ru();case"\n":case"\u2028":case"\u2029":return uu(),"";case"\r":return uu(),"\n"===Y()&&uu(),""}if(void 0===u||H.JudgeUtil.isDigitWithoutZero(u))throw Eu(x.Char,uu());return uu()}());case'"':case"'":if(J===q){const u=eu("string",j);return uu(),u}return void(j+=uu());case"\n":case"\r":case void 0:throw Eu(x.Char,uu());case"\u2028":case"\u2029":!function(u){console.warn(`JSON5: '${Fu(u)}' in strings is not valid ECMAScript; consider escaping.`)}(J)}j+=uu()}};function eu(u,D){return{type:u,value:D,line:$,column:k}}function tu(u){for(const D of u){if(Y()!==D)throw Eu(x.Char,uu());uu()}}function ru(){let u="",D=4;for(;D-- >0;){const D=Y();if(!H.JudgeUtil.isHexDigit(D))throw Eu(x.Char,uu());u+=uu()}return String.fromCodePoint(parseInt(u,16))}const nu={start(){if("eof"===M.type)throw Eu(x.EOF);iu()},beforePropertyName(){switch(M.type){case"identifier":case"string":return V=M.value,void(W="afterPropertyName");case"punctuator":return void Cu();case"eof":throw Eu(x.EOF)}},afterPropertyName(){if("eof"===M.type)throw Eu(x.EOF);W="beforePropertyValue"},beforePropertyValue(){if("eof"===M.type)throw Eu(x.EOF);iu()},afterPropertyValue(){if("eof"===M.type)throw Eu(x.EOF);switch(M.value){case",":return void(W="beforePropertyName");case"}":Cu()}},beforeArrayValue(){if("eof"===M.type)throw Eu(x.EOF);"punctuator"!==M.type||"]"!==M.value?iu():Cu()},afterArrayValue(){if("eof"===M.type)throw Eu(x.EOF);switch(M.value){case",":return void(W="beforeArrayValue");case"]":Cu()}},end(){}};function iu(){const u=function(){let u;switch(M.type){case"punctuator":switch(M.value){case"{":u={};break;case"[":u=[]}break;case"null":case"boolean":case"numeric":case"string":u=M.value}return u}();if(K&&"object"==typeof u&&(u._line=$,u._column=k),void 0===G)G=u;else{const D=U[U.length-1];Array.isArray(D)?K&&"object"!=typeof u?D.push({value:u,_line:$,_column:k}):D.push(u):D[V]=K&&"object"!=typeof u?{value:u,_line:$,_column:k}:u}!function(u){if(u&&"object"==typeof u)U.push(u),W=Array.isArray(u)?"beforeArrayValue":"beforePropertyName";else{const u=U[U.length-1];W=u?Array.isArray(u)?"afterArrayValue":"afterPropertyValue":"end"}}(u)}function Cu(){U.pop();const u=U[U.length-1];W=u?Array.isArray(u)?"afterArrayValue":"afterPropertyValue":"end"}function Fu(u){const D={"'":"\\'",'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\v":"\\v","\0":"\\0","\u2028":"\\u2028","\u2029":"\\u2029"};if(D[u])return D[u];if(u<" "){const D=u.charCodeAt(0).toString(16);return`\\x${`00${D}`.substring(D.length)}`}return u}function Eu(u,D){let e="";switch(u){case x.Char:e=void 0===D?`JSON5: invalid end of input at ${$}:${k}`:`JSON5: invalid character '${Fu(D)}' at ${$}:${k}`;break;case x.EOF:e=`JSON5: invalid end of input at ${$}:${k}`;break;case x.Identifier:k-=5,e=`JSON5: invalid identifier character at ${$}:${k}`}const t=new Au(e);return t.lineNumber=$,t.columnNumber=k,t}class Au extends SyntaxError{}var ou={},au=n&&n.__createBinding||(Object.create?function(u,D,e,t){void 0===t&&(t=e);var r=Object.getOwnPropertyDescriptor(D,e);r&&!("get"in r?!D.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return D[e]}}),Object.defineProperty(u,t,r)}:function(u,D,e,t){void 0===t&&(t=e),u[t]=D[e]}),cu=n&&n.__setModuleDefault||(Object.create?function(u,D){Object.defineProperty(u,"default",{enumerable:!0,value:D})}:function(u,D){u.default=D}),su=n&&n.__importStar||function(u){if(u&&u.__esModule)return u;var D={};if(null!=u)for(var e in u)"default"!==e&&Object.prototype.hasOwnProperty.call(u,e)&&au(D,u,e);return cu(D,u),D},lu=n&&n.__importDefault||function(u){return u&&u.__esModule?u:{default:u}};Object.defineProperty(ou,"__esModule",{value:!0}),ou.isFileExists=ou.offlinePluginConversion=ou.executeCommand=ou.getNpmPath=ou.hasNpmPackInPaths=void 0;const Bu=r,du=lu(e),fu=su(u),_u=i,pu=l;ou.hasNpmPackInPaths=function(u,D){try{return require.resolve(u,{paths:[...D]}),!0}catch(u){return!1}},ou.getNpmPath=function(){const u=process.execPath;return fu.join(fu.dirname(u),_u.NPM_TOOL)},ou.executeCommand=function(u,D,e){0!==(0,Bu.spawnSync)(u,D,e).status&&(0,pu.logErrorAndExit)(`Error: ${u} ${D} execute failed.See above for details.`)},ou.offlinePluginConversion=function(u,D){return D.startsWith("file:")||D.endsWith(".tgz")?fu.resolve(u,_u.HVIGOR,D.replace("file:","")):D},ou.isFileExists=function(u){return du.default.existsSync(u)&&du.default.statSync(u).isFile()};var Ou=n&&n.__createBinding||(Object.create?function(u,D,e,t){void 0===t&&(t=e);var r=Object.getOwnPropertyDescriptor(D,e);r&&!("get"in r?!D.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return D[e]}}),Object.defineProperty(u,t,r)}:function(u,D,e,t){void 0===t&&(t=e),u[t]=D[e]}),hu=n&&n.__setModuleDefault||(Object.create?function(u,D){Object.defineProperty(u,"default",{enumerable:!0,value:D})}:function(u,D){u.default=D}),Pu=n&&n.__importStar||function(u){if(u&&u.__esModule)return u;var D={};if(null!=u)for(var e in u)"default"!==e&&Object.prototype.hasOwnProperty.call(u,e)&&Ou(D,u,e);return hu(D,u),D},vu=n&&n.__importDefault||function(u){return u&&u.__esModule?u:{default:u}};Object.defineProperty(P,"__esModule",{value:!0});var gu=P.initProjectWorkSpace=void 0;const mu=Pu(e),Ru=vu(D),yu=Pu(u),Iu=v,Nu=i,bu=g,Su=l,wu=ou;let Hu,xu,Mu;function Tu(u,D,e){return void 0!==e.dependencies&&(0,wu.offlinePluginConversion)(Nu.HVIGOR_PROJECT_ROOT_DIR,D.dependencies[u])===yu.normalize(e.dependencies[u])}function Vu(){const u=yu.join(Mu,Nu.WORK_SPACE);if((0,Su.logInfoPrintConsole)("Hvigor cleaning..."),!mu.existsSync(u))return;const D=mu.readdirSync(u);if(!D||0===D.length)return;const e=yu.resolve(Mu,"node_modules","@ohos","hvigor","bin","hvigor.js");mu.existsSync(e)&&(0,wu.executeCommand)(process.argv[0],[e,"--stop-daemon"],{});try{D.forEach((D=>{mu.rmSync(yu.resolve(u,D),{recursive:!0})}))}catch(D){(0,Su.logErrorAndExit)(`The hvigor build tool cannot be installed. Please manually clear the workspace directory and synchronize the project again.\n\n Workspace Path: ${u}.`)}}gu=P.initProjectWorkSpace=function(){if(Hu=function(){const u=yu.resolve(Nu.HVIGOR_PROJECT_WRAPPER_HOME,Nu.DEFAULT_HVIGOR_CONFIG_JSON_FILE_NAME);mu.existsSync(u)||(0,Su.logErrorAndExit)(`Error: Hvigor config file ${u} does not exist.`);return(0,bu.parseJsonFile)(u)}(),Mu=function(u){let D;D=function(u){let D=u.hvigorVersion;if(D.startsWith("file:")||D.endsWith(".tgz"))return!1;const e=u.dependencies,t=Object.getOwnPropertyNames(e);for(const u of t){const D=e[u];if(D.startsWith("file:")||D.endsWith(".tgz"))return!1}if(1===t.length&&"@ohos/hvigor-ohos-plugin"===t[0])return D>"2.5.0";return!1}(u)?function(u){let D=`${Nu.HVIGOR_ENGINE_PACKAGE_NAME}@${u.hvigorVersion}`;const e=u.dependencies;if(e){Object.getOwnPropertyNames(e).sort().forEach((u=>{D+=`,${u}@${e[u]}`}))}return(0,Iu.hash)(D)}(u):(0,Iu.hash)(process.cwd());return yu.resolve(Ru.default.homedir(),".hvigor","project_caches",D)}(Hu),xu=function(){const u=yu.resolve(Mu,Nu.WORK_SPACE,Nu.DEFAULT_PACKAGE_JSON);return mu.existsSync(u)?(0,bu.parseJsonFile)(u):{dependencies:{}}}(),!(0,wu.hasNpmPackInPaths)(Nu.HVIGOR_ENGINE_PACKAGE_NAME,[yu.join(Mu,Nu.WORK_SPACE)])||(0,wu.offlinePluginConversion)(Nu.HVIGOR_PROJECT_ROOT_DIR,Hu.hvigorVersion)!==xu.dependencies[Nu.HVIGOR_ENGINE_PACKAGE_NAME]||!function(){function u(u){const D=null==u?void 0:u.dependencies;return void 0===D?0:Object.getOwnPropertyNames(D).length}const D=u(Hu),e=u(xu);if(D+1!==e)return!1;for(const u in null==Hu?void 0:Hu.dependencies)if(!(0,wu.hasNpmPackInPaths)(u,[yu.join(Mu,Nu.WORK_SPACE)])||!Tu(u,Hu,xu))return!1;return!0}()){Vu();try{!function(){(0,Su.logInfoPrintConsole)("Hvigor installing...");for(const u in Hu.dependencies)Hu.dependencies[u]&&(Hu.dependencies[u]=(0,wu.offlinePluginConversion)(Nu.HVIGOR_PROJECT_ROOT_DIR,Hu.dependencies[u]));const u={dependencies:{...Hu.dependencies}};u.dependencies[Nu.HVIGOR_ENGINE_PACKAGE_NAME]=(0,wu.offlinePluginConversion)(Nu.HVIGOR_PROJECT_ROOT_DIR,Hu.hvigorVersion);const D=yu.join(Mu,Nu.WORK_SPACE);try{mu.mkdirSync(D,{recursive:!0});const e=yu.resolve(D,Nu.DEFAULT_PACKAGE_JSON);mu.writeFileSync(e,JSON.stringify(u))}catch(u){(0,Su.logErrorAndExit)(u)}(function(){const u=["config","set","store-dir",Nu.HVIGOR_PNPM_STORE_PATH],D={cwd:yu.join(Mu,Nu.WORK_SPACE),stdio:["inherit","inherit","inherit"]};(0,wu.executeCommand)(Nu.HVIGOR_WRAPPER_PNPM_SCRIPT_PATH,u,D)})(),function(){const u=["install"],D={cwd:yu.join(Mu,Nu.WORK_SPACE),stdio:["inherit","inherit","inherit"]};(0,wu.executeCommand)(Nu.HVIGOR_WRAPPER_PNPM_SCRIPT_PATH,u,D)}(),(0,Su.logInfoPrintConsole)("Hvigor install success.")}()}catch(u){Vu()}}return Mu};var Gu={};!function(t){var C=n&&n.__createBinding||(Object.create?function(u,D,e,t){void 0===t&&(t=e);var r=Object.getOwnPropertyDescriptor(D,e);r&&!("get"in r?!D.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return D[e]}}),Object.defineProperty(u,t,r)}:function(u,D,e,t){void 0===t&&(t=e),u[t]=D[e]}),F=n&&n.__setModuleDefault||(Object.create?function(u,D){Object.defineProperty(u,"default",{enumerable:!0,value:D})}:function(u,D){u.default=D}),E=n&&n.__importStar||function(u){if(u&&u.__esModule)return u;var D={};if(null!=u)for(var e in u)"default"!==e&&Object.prototype.hasOwnProperty.call(u,e)&&C(D,u,e);return F(D,u),D},A=n&&n.__importDefault||function(u){return u&&u.__esModule?u:{default:u}};Object.defineProperty(t,"__esModule",{value:!0}),t.executeInstallPnpm=t.isPnpmInstalled=t.environmentHandler=t.checkNpmConifg=t.PNPM_VERSION=void 0;const o=r,a=E(e),c=A(D),s=E(u),B=i,d=l,f=ou;t.PNPM_VERSION="7.30.0",t.checkNpmConifg=function(){const u=s.resolve(B.HVIGOR_PROJECT_ROOT_DIR,".npmrc"),D=s.resolve(c.default.homedir(),".npmrc");if((0,f.isFileExists)(u)||(0,f.isFileExists)(D))return;const e=(0,f.getNpmPath)(),t=(0,o.spawnSync)(e,["config","get","prefix"],{cwd:B.HVIGOR_PROJECT_ROOT_DIR});if(0!==t.status||!t.stdout)return void(0,d.logErrorAndExit)("Error: The hvigor depends on the npmrc file. Configure the npmrc file first.");const r=s.resolve(`${t.stdout}`.replace(/[\r\n]/gi,""),".npmrc");(0,f.isFileExists)(r)||(0,d.logErrorAndExit)("Error: The hvigor depends on the npmrc file. Configure the npmrc file first.")},t.environmentHandler=function(){process.env["npm_config_update-notifier"]="false"},t.isPnpmInstalled=function(){return!!a.existsSync(B.HVIGOR_WRAPPER_PNPM_SCRIPT_PATH)&&(0,f.hasNpmPackInPaths)("pnpm",[B.HVIGOR_WRAPPER_TOOLS_HOME])},t.executeInstallPnpm=function(){(0,d.logInfoPrintConsole)(`Installing pnpm@${t.PNPM_VERSION}...`);const u=(0,f.getNpmPath)();!function(){const u=s.resolve(B.HVIGOR_WRAPPER_TOOLS_HOME,B.DEFAULT_PACKAGE_JSON);try{a.existsSync(B.HVIGOR_WRAPPER_TOOLS_HOME)||a.mkdirSync(B.HVIGOR_WRAPPER_TOOLS_HOME,{recursive:!0});const D={dependencies:{}};D.dependencies[B.PNPM]=t.PNPM_VERSION,a.writeFileSync(u,JSON.stringify(D))}catch(D){(0,d.logErrorAndExit)(`Error: EPERM: operation not permitted,create ${u} failed.`)}}(),(0,f.executeCommand)(u,["install","pnpm"],{cwd:B.HVIGOR_WRAPPER_TOOLS_HOME,stdio:["inherit","inherit","inherit"],env:process.env}),(0,d.logInfoPrintConsole)("Pnpm install success.")}}(Gu),function(){Gu.checkNpmConifg(),Gu.environmentHandler(),Gu.isPnpmInstalled()||Gu.executeInstallPnpm();const D=gu();_(u.join(D,i.WORK_SPACE))}(); diff --git a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/hvigorfile.ts b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/hvigorfile.ts index 6478186902c0c1ad7c966a929c7d6b7d8ae7a9f3..f6a51f2e343d74ccf67d082b5f8e6b3006858cec 100644 --- a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/hvigorfile.ts +++ b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/hvigorfile.ts @@ -1,2 +1,17 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + // Script for compiling build behavior. It is built in the build plug-in and cannot be modified currently. export { appTasks } from '@ohos/hvigor-ohos-plugin'; \ No newline at end of file diff --git a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/hvigorw b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/hvigorw deleted file mode 100644 index 54aadd226b453397860013d328fd01031648fc31..0000000000000000000000000000000000000000 --- a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/hvigorw +++ /dev/null @@ -1,48 +0,0 @@ -#!/bin/bash - -# ---------------------------------------------------------------------------- -# Hvigor startup script, version 1.0.0 -# -# Required ENV vars: -# ------------------ -# NODE_HOME - location of a Node home dir -# or -# Add /usr/local/nodejs/bin to the PATH environment variable -# ---------------------------------------------------------------------------- - -HVIGOR_APP_HOME=$(dirname $(readlink -f $0)) -HVIGOR_WRAPPER_SCRIPT=${HVIGOR_APP_HOME}/hvigor/hvigor-wrapper.js -warn() { - echo "" - echo -e "\033[1;33m`date '+[%Y-%m-%d %H:%M:%S]'`$@\033[0m" -} - -error() { - echo "" - echo -e "\033[1;31m`date '+[%Y-%m-%d %H:%M:%S]'`$@\033[0m" -} - -fail() { - error "$@" - exit 1 -} - -# Determine node to start hvigor wrapper script -if [ -n "${NODE_HOME}" ];then - EXECUTABLE_NODE="${NODE_HOME}/bin/node" - if [ ! -x "$EXECUTABLE_NODE" ];then - fail "ERROR: NODE_HOME is set to an invalid directory,check $NODE_HOME\n\nPlease set NODE_HOME in your environment to the location where your nodejs installed" - fi -else - EXECUTABLE_NODE="node" - which ${EXECUTABLE_NODE} > /dev/null 2>&1 || fail "ERROR: NODE_HOME is not set and not 'node' command found in your path" -fi - -# Check hvigor wrapper script -if [ ! -r "$HVIGOR_WRAPPER_SCRIPT" ];then - fail "ERROR: Couldn't find hvigor/hvigor-wrapper.js in ${HVIGOR_APP_HOME}" -fi - -# start hvigor-wrapper script -exec "${EXECUTABLE_NODE}" \ - "${HVIGOR_WRAPPER_SCRIPT}" "$@" diff --git a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/hvigorw.bat b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/hvigorw.bat deleted file mode 100644 index 6861293e47dfd0186da380321b73be9033507e24..0000000000000000000000000000000000000000 --- a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/hvigorw.bat +++ /dev/null @@ -1,64 +0,0 @@ -@if "%DEBUG%" == "" @echo off -@rem ########################################################################## -@rem -@rem Hvigor startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Resolve any "." and ".." in APP_HOME to make it shorter. -for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi - -set WRAPPER_MODULE_PATH=%APP_HOME%\hvigor\hvigor-wrapper.js -set NODE_EXE=node.exe - -goto start - -:start -@rem Find node.exe -if defined NODE_HOME goto findNodeFromNodeHome - -%NODE_EXE% --version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto execute - -echo. -echo ERROR: NODE_HOME is not set and no 'node' command could be found in your PATH. -echo. -echo Please set the NODE_HOME variable in your environment to match the -echo location of your NodeJs installation. - -goto fail - -:findNodeFromNodeHome -set NODE_HOME=%NODE_HOME:"=% -set NODE_EXE_PATH=%NODE_HOME%/%NODE_EXE% - -if exist "%NODE_EXE_PATH%" goto execute -echo. -echo ERROR: NODE_HOME is not set and no 'node' command could be found in your PATH. -echo. -echo Please set the NODE_HOME variable in your environment to match the -echo location of your NodeJs installation. - -goto fail - -:execute -@rem Execute hvigor -"%NODE_EXE%" %WRAPPER_MODULE_PATH% %* - -if "%ERRORLEVEL%" == "0" goto hvigorwEnd - -:fail -exit /b 1 - -:hvigorwEnd -if "%OS%" == "Windows_NT" endlocal - -:end diff --git a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/oh-package.json5 b/code/DocsSample/ApplicationModels/StageServiceWidgetCards/oh-package.json5 deleted file mode 100644 index ba1ca71dfd7948686794f978c2c0b458123de9ba..0000000000000000000000000000000000000000 --- a/code/DocsSample/ApplicationModels/StageServiceWidgetCards/oh-package.json5 +++ /dev/null @@ -1,12 +0,0 @@ -{ - "license": "", - "devDependencies": { - "@ohos/hypium": "1.0.6" - }, - "author": "", - "name": "stageservicewidgetcards", - "description": "Please describe the basic information.", - "main": "", - "version": "1.0.0", - "dependencies": {} -} diff --git a/code/DocsSample/Form/FormHost/.idea/workspace.xml b/code/DocsSample/Form/FormHost/.idea/workspace.xml new file mode 100644 index 0000000000000000000000000000000000000000..3535f92f64b122d2a989147c4ba2eae7e0ba909b --- /dev/null +++ b/code/DocsSample/Form/FormHost/.idea/workspace.xml @@ -0,0 +1,194 @@ + + + + + + + + { + "associatedIndex": 2 + } + + + + + + + + true + [] + false + true + + + Default Ability + + [] + Detect Automatically + [] + true + lldb process:gdb-remote packets + [] + [] + [] + false + false + false + false + false + false + false + entry + + + + + entry + true + [] + false + true + + + Default Ability + + [] + Detect Automatically + [] + true + lldb process:gdb-remote packets + [] + [] + [] + false + false + false + false + false + false + false + + + + + entry + true + [] + false + true + + + + + [] + Detect Automatically + [] + true + lldb process:gdb-remote packets + [] + [] + [] + false + false + false + false + false + false + false + + + + + + + + + + + + + + + + + + + entry + true + [] + false + true + + + + + [] + Detect Automatically + [] + true + lldb process:gdb-remote packets + [] + [] + [] + false + false + false + false + false + false + false + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file