写点什么

【FAQ】HarmonyOS SDK 闭源开放能力 — 公共模块

作者:HarmonyOS SDK
  • 2024-11-25
    贵州
  • 本文字数:1940 字

    阅读完需:约 6 分钟

1.问题描述:


文档哪里能找到所有的权限查看该权限是用户级的还是系统级的。


解决方案:


您好,可以看一下下方链接是否可以解决问题:


https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/permissions-for-all-V5


https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/permissions-in-acl-V5


2.问题描述:


查阅文档发现 isApplicationEnabled 方法已被弃用,目前如何判断手机中某个应用是否已安装?


解决方案:


应用是否已安装?


目前判断应用是否在手机安装,在 API 12 之前并不支持。


在 API 12 之后,bundleManager 支持 canOpenLink 接口,通过配置 module.json5 的 querySchemes 属性,在代码中可以通过一下代码确定对应应用是否安装:


参考链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-bundlemanager-V5#ZH-CN_TOPIC_0000001893370881__bundlemanagercanopenlink12


3.问题描述:


如何在代码中获取 oh-package.json5 中的信息,比如版本(version)或者描述(description)?


解决方案:


可以通过 hvigor 脚本实现。


hvigor 自定义任务指导:https://developer.harmonyos.com/cn/docs/documentation/doc-guides-V2/custom-hvigor-0000001650987753-V2


hvigor 命令行指导:https://developer.harmonyos.com/cn/docs/documentation/doc-guides-V2/ide-command-line-hvigor-0000001553317645-V2


Demo: 这里展示在 har module 的 hvigorfile.ts 文件下,编写脚本代码,实现: 1.获取并解析 oh-package.json5 中的内容 2.获取 har 产物的路径 3.修改 har 产物的名称



import { harTasks } from '@ohos/hvigor-ohos-plugin';
import fs from 'fs'
interface OhPackage {
name: string;
version: number;
description: string;
author: string;
}
export function renameHarTask(str?: string) {
return {
pluginId: 'RenameHarTaskID',
apply(pluginContext) {
pluginContext.registerTask({
// 编写自定义任务
name: 'renameHarTask',
run: (taskContext) => {
//读取oh-package.json5,解析出version
const packageFile = taskContext.modulePath+'\oh-package.json5';
console.log('file: ', packageFile);
let fileContent = fs.readFileSync(packageFile, 'utf8');
console.log(fileContent);
const content: OhPackage = JSON.parse(fileContent);
const version = content.version;
const author = content.author;
console.log('renameHarTask: ', taskContext.moduleName, taskContext.modulePath);
const sourceFile = taskContext.modulePath + '\\build\\default\\outputs\\default\\' + taskContext.moduleName + '.har';
const targetFile = taskContext.modulePath + '\\build\\default\\outputs\\default\\'
+ taskContext.moduleName + '-' + version + '-' + author +'.har';
console.log('renameHarTask: sourceFile: ', sourceFile);
console.log('renameHarTask: targetFile: ', targetFile);
// 修改产物名
fs.rename(sourceFile, targetFile, (err)=> {
console.log('err: ' + err);
});
},
// 确认自定义任务插入位置
dependencies: ['default@PackageHar'],
postDependencies: ['assembleHar']
})
}
}

}
export default {
system: harTasks,
plugins:[renameHarTask()]
}
复制代码


实现效果 在 Terminal 窗口执行: ./hvigorw renameHarTask 查看 build/default/outputs/default/下的 har,可以看到,生成的 har 已经修改为了我们代码中指定的 taskContext.moduleName + '-' + version + '-' + author +'.har'


4.问题描述:


编译报错:The default system capabilities of devices phone, tablet, 2in1 do not include SystemCapability.Communication.NFC.Tag. Configure the capabilities in syscap.json.


解决方案:


报错提示是:不包括 SystemCapability.Communication.NFC.Tag,需要 syscap.json 中配置。


可参考链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/syscap-V5#ZH-CN_TOPIC_0000001904100062__pcid%E5%AF%BC%E5%85%A5

用户头像

HarmonyOS SDK

关注

HarmonyOS SDK 2022-06-16 加入

HarmonyOS SDK通过将HarmonyOS系统级能力对外开放,支撑开发者高效打造更纯净、更智能、更精致、更易用的鸿蒙原生应用,和开发者共同成长。

评论

发布
暂无评论
【FAQ】HarmonyOS SDK 闭源开放能力 — 公共模块_HarmonyOS SDK_InfoQ写作社区