HarmonyOS 鸿蒙Next 动态获取应用名称
HarmonyOS 鸿蒙Next 动态获取应用名称
更多关于HarmonyOS 鸿蒙Next 动态获取应用名称的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
import common from '[@ohos](/user/ohos).app.ability.common';
const context = getContext(this) as common.UIAbilityContext
console.log(`bundleName: ${context.abilityInfo.bundleName}`)
[@Entry](/user/Entry)
[@Component](/user/Component)
struct Page240604115304029 {
[@State](/user/State) message: string = 'Hello World';
build() {
Row() {
Column() {
Text($r('app.string.EntryAbility_label'))
.fontSize(50)
.fontWeight(FontWeight.Bold)
}
.width('100%')
}
.height('100%')
}
}
可以试下以下写法获取应用名称:
try {
let bundleInfo = await bundleManager.getBundleInfoForSelf(bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION);
console.log(bundleInfo.appInfo.label);
console.log(this.context.resourceManager.getStringSync(bundleInfo.appInfo.labelId));
} catch (error) {
}
├─AppScope # 应用域/服务域的目录,包含应用/服务的资源、配置等信息。
│ └─resources # 应用/服务所用到的资源文件的根目录。
│ └─base # 应用/服务所用到的资源文件的基础目录,包含了元素资源文件和媒体资源文件等。
│ ├─element # 应用/服务所用到的元素资源文件目录,例如字符串、颜色等。
│ │ string.json
│ │
│ └─media # 应用/服务所用到的媒体资源文件目录,包括图片、音频、视频等非文本格式的文件。
│ app_icon.png # 应用图标/服务图标文件。例如在设置应用中使用到的图标。
│ │ app.json5 # 应用/服务的全局配置文件,包含应用/服务的Bundle名称、开发厂商、版本号等基本信息。
│
├─entry # 应用/服务的工程入口模块,通过编译构建生成一个HAP文件。
│ └─src # 入口模块的源代码目录。
│ ├─main # 入口模块的主代码目录,包括应用/服务的入口代码和页面代码,以及所用到的资源文件。
│ │ ├─ets # 入口模块的ArkTS文件目录,包含应用/服务的界面布局和交互逻辑代码。
│ │ │ ├─entryability # 入口模块的入口UIAbility文件目录。
│ │ │ │ EntryAbility.ts # 入口模块的入口UIAbility文件。
│ │ │ │
│ │ │ └─pages # 模块的页面文件目录。
│ │ │ Index.ets # 模块的首页页面文件。
│ │ │
│ │ └─resources # 模块所用到的资源文件的根目录。
│ │ ├─base # 模块所用到的资源文件的基础目录。该目录中的资源文件会被编译成二进制文件,并赋予资源文件ID。
│ │ │ ├─element # 模块所用到的元素资源目录,例如字符串、颜色等。
│ │ │ │ color.json # 颜色配置文件。
│ │ │ │ string.json # 字符串配置文件。
│ │ │ │
│ │ │ ├─media # 模块所用到的媒体资源目录,包括图片、音频和视频文件等。
│ │ │ │ icon.png # UIAbility的入口图标文件。
│ │ │ │
│ │ │ └─profile # 模块所用到的配置目录,包括页面配置、卡片配置以及自定义配置等。
│ │ │ main_pages.json # 模块的页面配置文件。
│ │ │
│ │ ├─en_US # 模块的限定词目录,表示所用到的英文资源文件目录。
│ │ │ └─element # 英文资源文件所用到的元素文件目录,例如字符串等。
│ │ │ string.json # 英文字符串配置文件。
│ │ │
│ │ ├─rawfile # 模块所用到的原始文件目录,例如证书文件、文本文件,以及较大的图片、音频和视频文件等。该目录中的资源文件会被直接打包进应用,不经过编译,也不会被赋予资源文件ID。
│ │ └─zh_CN # 模块的限定词目录,表示所用到的中文资源文件目录。
│ │ └─element # 中文资源文件所用到的元素文件目录,例如字符串等。
│ │ string.json # 中文字符串配置文件。
│ │ │ module.json5 # 模块的配置文件,包含模块的名称、类型、描述、支持的设备类型、模块中UIAbility的配置、模块中ExtensionAbility的配置,以及当前应用运行时需向系统申请的权限集合等基本信息。
│ │
│ └─ohosTest # 测试模块的文件目录,包含应用/服务的测试代码和资源文件。
│ │ build-profile.json5 # 模块级构建配置文件,包括构建类型、编译配置选项以及多目标构建配置项等信息。
│ │ hvigorfile.ts # 模块级编译构建任务脚本文件,包括自定义插件和自定义任务等脚本逻辑。
│ │ oh-package.json5 # 模块级依赖管理配置文件,包括模块的名称、版本号以及依赖的OpenHarmony共享包等信息。
│─hvigor # hvigor构建工具文件目录。
│ └─hvigor-config.json5 # 定义hvigor引擎能力的配置文件,包含hvigor引擎运行时所需要的版本、依赖项、环境选项以及运行选项等。
│ └─hvigor-wrapper.js # hvigor wrapper的核心代码文件。
│─oh_modules # 第三方依赖库目录,包含应用/服务所依赖的第三方库文件。
│ build-profile.json5 # 工程级构建配置文件,包括签名信息、依赖SDK版本以及产品配置等。
│ hvigorfile.ts # 工程级编译构建任务脚本文件,包括自定义插件和自定义任务等脚本逻辑。
│ hvigorw # hvigor编译构建文件,用于命令行的方式执行编译构建操作。基于Shell脚本的格式的文件。
│ hvigorw.bat # hvigor编译构建文件,用于命令行的方式执行编译构建操作。基于Batch脚本的格式的文件。
│ local.properties # 工程级构建配置文件,用于指定本地构建环境的路径,例如指定SDK、NodeJS的路径等。
│ oh-package.json5 # 工程级项目依赖管理配置文件,包括模块的名称、版本号以及依赖的OpenHarmony共享包等信息。
│ oh-package-lock.json5 # 工程级项目依赖管理配置锁定文件,记录当前状态下模块安装项目依赖时各个依赖包的具体来源和版
没复现您的问题,请您新建个工程运行以下完整demo测试,我这边的测试结果显示的就是AppScope中的string.json中设置的应用名称。
import { bundleManager } from '[@kit](/user/kit).AbilityKit';
try {
bundleManager.getBundleInfoForSelf(bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION, (err, data) => {
console.log("应用名称:"+getContext().resourceManager.getStringSync(data.appInfo.labelId));
});
} catch (err) {
}
[@Entry](/user/Entry)
[@Component](/user/Component)
struct listDemo {
build() {
Column(){
Text("测试")
}
}
}
更多关于HarmonyOS 鸿蒙Next 动态获取应用名称的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next系统中,动态获取应用名称的操作通常依赖于系统提供的API和接口。以下是一个直接的方法来实现这一功能:
-
获取包名:首先,你需要获取目标应用的包名。这可以通过系统服务或查询已安装应用列表来实现。
-
使用PackageManager:在鸿蒙系统中,存在类似Android的PackageManager类,尽管具体实现可能有所不同。你可以通过PackageManager获取应用信息,包括应用名称。
-
代码示例:
// 注意:此示例为伪代码,具体API调用需参考鸿蒙系统文档 PackageManager pm = getPackageManager(); String packageName = "com.example.app"; ApplicationInfo appInfo = pm.getApplicationInfo(packageName, 0); String appName = (String) pm.getApplicationLabel(appInfo);
注意:上述代码为示意性代码,实际在鸿蒙系统中,应使用鸿蒙提供的相应API和类。由于鸿蒙API与Android有所差异,需查阅鸿蒙官方文档以获取准确API。
-
权限要求:动态获取应用名称可能需要特定权限,确保你的应用已声明相关权限。
综上所述,通过PackageManager类(或其鸿蒙系统中的对应类)和适当的API调用,可以动态获取应用名称。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html 。