From 4d4be25fc6490b5b038258d60fafed701ce05d4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=BF=9E=E6=BC=AA?= Date: Fri, 22 Nov 2024 16:40:39 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=83=A8=E4=BB=B6=E5=90=8D?= =?UTF-8?q?=E7=A7=B0=E5=92=8C=E9=83=A8=E4=BB=B6=E8=B7=AF=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 连漪 --- BUILD.gn | 2 +- atomicservice_config.gni | 95 +++++++++++++++++++ atomicservicenavigation/interfaces/BUILD.gn | 6 +- atomicservicetabs/interfaces/BUILD.gn | 6 +- atomicserviceweb/interfaces/BUILD.gn | 6 +- .../interfaces/atomicserviceweb.js | 7 ++ atomicserviceweb/source/atomicserviceweb.ets | 7 ++ bundle.json | 16 ++-- .../interfaces/BUILD.gn | 2 +- interstitialdialogaction/interfaces/BUILD.gn | 6 +- navpushpathhelper/BUILD.gn | 8 +- 11 files changed, 130 insertions(+), 31 deletions(-) create mode 100644 atomicservice_config.gni diff --git a/BUILD.gn b/BUILD.gn index 8c00849..c681d2a 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -11,7 +11,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -group("atomicservice_ui_component") { +group("advanced_ui_component") { deps = [ "atomicservicenavigation/interfaces:atomicservicenavigation", "atomicservicetabs/interfaces:atomicservicetabs", diff --git a/atomicservice_config.gni b/atomicservice_config.gni new file mode 100644 index 0000000..77087d8 --- /dev/null +++ b/atomicservice_config.gni @@ -0,0 +1,95 @@ +# Copyright (c) 2024 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. + +import("//build/config/clang/clang.gni") +import("//build/ohos.gni") +import("//build/test.gni") + +enable_dump_drawcmd = false +is_ohos_standard_system = is_standard_system && !is_arkui_x +use_mingw_win = "${current_os}_${current_cpu}" == "mingw_x86_64" +use_mac = "${current_os}_${current_cpu}" == "mac_x64" || + "${current_os}_${current_cpu}" == "mac_arm64" +use_ios = "${current_os}_${current_cpu}" == "ios_x64" || + "${current_os}_${current_cpu}" == "ios_arm64" +use_linux = "${current_os}_${current_cpu}" == "linux_x64" + +# Config toolchain +windows_buildtool = "//build/toolchain/mingw:mingw_x86_64" +objcopy_default = "//prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/aarch64-linux-android/bin/objcopy" +objcopy_mingw = "//prebuilts/gcc/linux-x86/host/x86_64-w64-mingw32-4.8/x86_64-w64-mingw32/bin/objcopy" +objcopy_x86_64 = "${default_clang_base_path}/bin/llvm-objcopy" +if ("${current_os}_${current_cpu}" == "mac_arm64") { + mac_buildtool = "//build/toolchain/mac:clang_arm64" +} else if ("${current_os}_${current_cpu}" == "mac_x64") { + mac_buildtool = "//build/toolchain/mac:clang_x64" +} + +objcopy_clang = "$clang_base_path/bin/llvm-objcopy" + +if (is_ohos_standard_system) { + objcopy_default = "//prebuilts/clang/ohos/linux-x86_64/llvm/bin/llvm-objcopy" +} else if (is_arkui_x) { + if (host_os == "mac") { + objcopy_default = objcopy_clang + } +} + +use_hilog = is_mingw || is_mac || is_linux || is_ohos || is_ohos_standard_system + +# Config gen_obj +template("gen_obj") { + name = target_name + action("gen_obj_" + name) { + visibility = [ ":*" ] # Only targets in this file can depend on this. + + if (use_mingw_win) { + objcopy_tool = objcopy_mingw + script = "//foundation/arkui/ace_engine/build/tools/build_resource_to_bytecode.py" + } else if (use_mac || target_os == "ios") { + objcopy_tool = objcopy_clang + script = "//foundation/arkui/ace_engine/build/tools/build_resource_to_bytecode.py" + } else if (use_linux) { + objcopy_tool = objcopy_x86_64 + script = "//foundation/arkui/ace_engine/build/tools/build_resource_to_bytecode.py" + } else if (target_cpu == "x86_64") { + objcopy_tool = objcopy_x86_64 + script = "//foundation/arkui/ace_engine/build/tools/run_objcopy.py" + } else { + objcopy_tool = objcopy_default + script = "//foundation/arkui/ace_engine/build/tools/run_objcopy.py" + } + + args = [ + "--objcopy", + rebase_path(objcopy_tool), + "--input", + rebase_path(invoker.input), + "--output", + rebase_path(invoker.output), + "--arch", + current_cpu, + ] + + deps = [] + deps += invoker.snapshot_dep + + inputs = [ invoker.input ] + outputs = [ invoker.output ] + } + + source_set("gen_obj_src_" + name) { + sources = [ invoker.output ] + deps = [ ":gen_obj_" + name ] + } +} diff --git a/atomicservicenavigation/interfaces/BUILD.gn b/atomicservicenavigation/interfaces/BUILD.gn index 2c56761..614b698 100644 --- a/atomicservicenavigation/interfaces/BUILD.gn +++ b/atomicservicenavigation/interfaces/BUILD.gn @@ -13,9 +13,7 @@ import("//build/config/components/ets_frontend/es2abc_config.gni") import("//build/ohos.gni") -import("//foundation/arkui/ace_engine/ace_config.gni") -import("//foundation/arkui/ace_engine/adapter/preview/build/config.gni") -import("//foundation/arkui/ace_engine/build/ace_gen_obj.gni") +import("//foundation/arkui/advanced_ui_component/atomicservice_config.gni") es2abc_gen_abc("gen_atomicservicenavigation_abc") { src_js = rebase_path("atomicservicenavigation.js") @@ -55,5 +53,5 @@ ohos_shared_library("atomicservicenavigation") { relative_install_dir = "module/atomicservice" subsystem_name = "arkui" - part_name = "atomicservice_ui_component" + part_name = "advanced_ui_component" } diff --git a/atomicservicetabs/interfaces/BUILD.gn b/atomicservicetabs/interfaces/BUILD.gn index 2247ab2..6fbe8cb 100644 --- a/atomicservicetabs/interfaces/BUILD.gn +++ b/atomicservicetabs/interfaces/BUILD.gn @@ -13,9 +13,7 @@ import("//build/config/components/ets_frontend/es2abc_config.gni") import("//build/ohos.gni") -import("//foundation/arkui/ace_engine/ace_config.gni") -import("//foundation/arkui/ace_engine/adapter/preview/build/config.gni") -import("//foundation/arkui/ace_engine/build/ace_gen_obj.gni") +import("//foundation/arkui/advanced_ui_component/atomicservice_config.gni") es2abc_gen_abc("gen_atomicservicetabs_abc") { src_js = rebase_path("atomicservicetabs.js") @@ -55,5 +53,5 @@ ohos_shared_library("atomicservicetabs") { relative_install_dir = "module/atomicservice" subsystem_name = "arkui" - part_name = "atomicservice_ui_component" + part_name = "advanced_ui_component" } diff --git a/atomicserviceweb/interfaces/BUILD.gn b/atomicserviceweb/interfaces/BUILD.gn index f8b10fe..92718c9 100644 --- a/atomicserviceweb/interfaces/BUILD.gn +++ b/atomicserviceweb/interfaces/BUILD.gn @@ -13,9 +13,7 @@ import("//build/config/components/ets_frontend/es2abc_config.gni") import("//build/ohos.gni") -import("//foundation/arkui/ace_engine/ace_config.gni") -import("//foundation/arkui/ace_engine/adapter/preview/build/config.gni") -import("//foundation/arkui/ace_engine/build/ace_gen_obj.gni") +import("//foundation/arkui/advanced_ui_component/atomicservice_config.gni") es2abc_gen_abc("gen_atomicserviceweb_abc") { src_js = rebase_path("atomicserviceweb.js") @@ -60,5 +58,5 @@ ohos_shared_library("atomicserviceweb") { relative_install_dir = "module/atomicservice" subsystem_name = "arkui" - part_name = "atomicservice_ui_component" + part_name = "advanced_ui_component" } diff --git a/atomicserviceweb/interfaces/atomicserviceweb.js b/atomicserviceweb/interfaces/atomicserviceweb.js index 5cb35b2..6bf2ff7 100644 --- a/atomicserviceweb/interfaces/atomicserviceweb.js +++ b/atomicserviceweb/interfaces/atomicserviceweb.js @@ -93,6 +93,7 @@ const UPLOAD_IMAGE_FILES_URI_REQUIRED_ERROR = new AsError(200012, 'Param uri of const UPLOAD_FILE_ERROR = new AsError(200013, 'Upload file error.'); const IMAGE_CAN_NOT_PREVIEW_ERROR = new AsError(200014, 'The filePath can not preview.'); const NETWORK_NO_ACTIVE_ERROR = new AsError(200015, 'The network is not active.'); +const PERMISSION_LOCATION_USER_REFUSED_ERROR = 200016; registerJsApi('router.pushUrl', 'pushUrl', '1.0.0', MAX_VERSION, ['url']); registerJsApi('router.replaceUrl', 'replaceUrl', '1.0.0', MAX_VERSION, ['url']); @@ -806,6 +807,12 @@ class AtomicService { p5.requestPermissionsFromUser(this.context, [j5]).then(t5 => { for (let u5 = 0; u5 < t5.authResults.length; u5++) { if (t5.authResults[u5] != 0) { + const error = { + name: '', + message: `RequestPermissionsFromUser error. authResult: ${t5.authResults[u5]}.`, + code: PERMISSION_LOCATION_USER_REFUSED_ERROR + }; + k5(error); return; } } diff --git a/atomicserviceweb/source/atomicserviceweb.ets b/atomicserviceweb/source/atomicserviceweb.ets index 46fa5b1..625fc86 100644 --- a/atomicserviceweb/source/atomicserviceweb.ets +++ b/atomicserviceweb/source/atomicserviceweb.ets @@ -85,6 +85,7 @@ const UPLOAD_IMAGE_FILES_URI_REQUIRED_ERROR: AsError = new AsError(200012, 'Para const UPLOAD_FILE_ERROR: AsError = new AsError(200013, 'Upload file error.'); const IMAGE_CAN_NOT_PREVIEW_ERROR: AsError = new AsError(200014, 'The filePath can not preview.'); const NETWORK_NO_ACTIVE_ERROR: AsError = new AsError(200015, 'The network is not active.'); +const PERMISSION_LOCATION_USER_REFUSED_ERROR: number = 200016; registerJsApi('router.pushUrl', 'pushUrl', '1.0.0', MAX_VERSION, ['url']); registerJsApi('router.replaceUrl', 'replaceUrl', '1.0.0', MAX_VERSION, ['url']); @@ -690,6 +691,12 @@ class AtomicService { atManager.requestPermissionsFromUser(this.context, [permissionName]).then(permissionRequestResult => { for (let i = 0; i < permissionRequestResult.authResults.length; i++) { if (permissionRequestResult.authResults[i] != 0) { + const error: BusinessError = { + name: '', + message: `RequestPermissionsFromUser error. authResult: ${permissionRequestResult.authResults[i]}.`, + code: PERMISSION_LOCATION_USER_REFUSED_ERROR + }; + grantCallback(error); return; } } diff --git a/bundle.json b/bundle.json index b622245..ca80fc0 100644 --- a/bundle.json +++ b/bundle.json @@ -1,13 +1,13 @@ { "name": "@ohos/advanced_ui_component", "version": "1.0.0", - "description": "atomicservice_ui_component", + "description": "advanced_ui_component", "publishAs": "code-segment", "segment": { - "destPath": "foundation/arkui/arkui_advanced_ui_component" + "destPath": "foundation/arkui/advanced_ui_component" }, "component": { - "name": "atomicservice_ui_component", + "name": "advanced_ui_component", "subsystem": "arkui", "syscap": [], "features": [], @@ -25,11 +25,11 @@ }, "build": { "sub_component": [ - "//foundation/arkui/arkui_advanced_ui_component/atomicservicenavigation/interfaces:atomicservicenavigation", - "//foundation/arkui/arkui_advanced_ui_component/atomicservicetabs/interfaces:atomicservicetabs", - "//foundation/arkui/arkui_advanced_ui_component/atomicserviceweb/interfaces:atomicserviceweb", - "//foundation/arkui/arkui_advanced_ui_component/innerfullscreenlaunchcomponent/interfaces:innerfullscreenlaunchcomponent", - "//foundation/arkui/arkui_advanced_ui_component/interstitialdialogaction/interfaces:interstitialdialogaction" + "//foundation/arkui/advanced_ui_component/atomicservicenavigation/interfaces:atomicservicenavigation", + "//foundation/arkui/advanced_ui_component/atomicservicetabs/interfaces:atomicservicetabs", + "//foundation/arkui/advanced_ui_component/atomicserviceweb/interfaces:atomicserviceweb", + "//foundation/arkui/advanced_ui_component/innerfullscreenlaunchcomponent/interfaces:innerfullscreenlaunchcomponent", + "//foundation/arkui/advanced_ui_component/interstitialdialogaction/interfaces:interstitialdialogaction" ], "inner_kits": [], "test": [] diff --git a/innerfullscreenlaunchcomponent/interfaces/BUILD.gn b/innerfullscreenlaunchcomponent/interfaces/BUILD.gn index c77e449..7a0ad27 100644 --- a/innerfullscreenlaunchcomponent/interfaces/BUILD.gn +++ b/innerfullscreenlaunchcomponent/interfaces/BUILD.gn @@ -57,5 +57,5 @@ ohos_shared_library("innerfullscreenlaunchcomponent") { relative_install_dir = "module/arkui/advanced" subsystem_name = "arkui" - part_name = "atomicservice_ui_component" + part_name = "advanced_ui_component" } diff --git a/interstitialdialogaction/interfaces/BUILD.gn b/interstitialdialogaction/interfaces/BUILD.gn index aab43e2..495c7cd 100644 --- a/interstitialdialogaction/interfaces/BUILD.gn +++ b/interstitialdialogaction/interfaces/BUILD.gn @@ -13,9 +13,7 @@ import("//build/config/components/ets_frontend/es2abc_config.gni") import("//build/ohos.gni") -import("//foundation/arkui/ace_engine/ace_config.gni") -import("//foundation/arkui/ace_engine/adapter/preview/build/config.gni") -import("//foundation/arkui/ace_engine/build/ace_gen_obj.gni") +import("//foundation/arkui/advanced_ui_component/atomicservice_config.gni") es2abc_gen_abc("gen_interstitialdialogaction_abc") { src_js = rebase_path("interstitialdialogaction.js") @@ -55,5 +53,5 @@ ohos_shared_library("interstitialdialogaction") { relative_install_dir = "module/atomicservice" subsystem_name = "arkui" - part_name = "atomicservice_ui_component" + part_name = "advanced_ui_component" } diff --git a/navpushpathhelper/BUILD.gn b/navpushpathhelper/BUILD.gn index c540e9d..dcbf22d 100644 --- a/navpushpathhelper/BUILD.gn +++ b/navpushpathhelper/BUILD.gn @@ -11,11 +11,9 @@ # See the License for the specific language governing permissions and # limitations under the License. -import("//arkcompiler/ets_frontend/es2panda/es2abc_config.gni") +import("//build/config/components/ets_frontend/es2abc_config.gni") import("//build/ohos.gni") -import("//foundation/arkui/ace_engine/ace_config.gni") -import("//foundation/arkui/ace_engine/adapter/preview/build/config.gni") -import("//foundation/arkui/ace_engine/build/ace_gen_obj.gni") +import("//foundation/arkui/advanced_ui_component/atomicservice_config.gni") es2abc_gen_abc("gen_navpushpathhelper_abc") { src_js = rebase_path("navpushpathhelper.js") @@ -72,5 +70,5 @@ ohos_shared_library("navpushpathhelper") { relative_install_dir = "module/atomicservice" subsystem_name = "arkui" - part_name = "as_advanced_ui_component" + part_name = "advanced_ui_component" } -- Gitee