首页
社区
课程
招聘
[原创]【FAQ】HarmonyOS SDK 闭源开放能力 — 公共模块
发表于: 2024-11-25 11:45 3794

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

2024-11-25 11:45
3794

1.问题描述:

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

解决方案:

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

251K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6V1k6i4k6W2L8r3!0H3k6i4u0Q4x3X3g2Z5N6h3q4%4k6h3W2Q4x3X3g2U0L8$3#2Q4x3V1k6U0L8$3&6K6N6h3#2W2M7W2)9J5c8X3y4F1i4K6u0r3k6r3!0U0i4K6u0r3K9r3q4J5L8h3!0F1P5h3!0K6i4K6u0V1k6%4g2A6k6r3g2K6i4K6u0V1g2U0g2Q4x3V1k6H3k6i4u0E0K9i4y4K6K9h3!0F1M7#2)9J5k6r3k6G2M7W2)9J5k6r3q4D9L8q4)9J5k6q4j5#2

eb8K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6V1k6i4k6W2L8r3!0H3k6i4u0Q4x3X3g2Z5N6h3q4%4k6h3W2Q4x3X3g2U0L8$3#2Q4x3V1k6U0L8$3&6K6N6h3#2W2M7W2)9J5c8X3y4F1i4K6u0r3k6r3!0U0i4K6u0r3K9r3q4J5L8h3!0F1P5h3!0K6i4K6u0V1k6%4g2A6k6r3g2K6i4K6u0V1g2U0g2Q4x3V1k6H3k6i4u0E0K9i4y4K6K9h3!0F1M7#2)9J5k6r3W2F1i4K6u0V1j5h3y4D9i4K6u0V1g2U0f1`.

2.问题描述:

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

解决方案:

应用是否已安装?

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

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

参考链接:be7K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6V1k6i4k6W2L8r3!0H3k6i4u0Q4x3X3g2Z5N6h3q4%4k6h3W2Q4x3X3g2U0L8$3#2Q4x3V1k6U0L8$3&6K6N6h3#2W2M7W2)9J5c8X3y4F1i4K6u0r3k6r3!0U0i4K6u0r3K9r3q4J5L8h3!0F1P5h3!0K6i4K6u0V1M7X3g2X3k6i4u0W2L8X3y4W2M7#2)9J5k6q4j5#2i4K6u0r3K9Y4y4Q4x3X3c8S2M7r3W2K6i4K6u0V1j5Y4g2F1k6r3I4W2L8h3q4F1j5h3N6W2M7W2)9J5k6q4j5#2i4K6t1K6h3V1S2Q4x3X3c8o6e0W2)9#2k6W2c8a6f1p5W2o6i4K6g2X3x3o6l9H3x3o6l9H3x3e0R3&6x3K6x3%4x3o6R3^5x3g2)9#2k6W2)9#2k6X3u0#2L8X3c8D9k6h3#2S2L8X3q4Y4k6i4u0U0j5h3&6G2M7r3g2F1L8r3W2F1K9K6p5J5

3.问题描述:

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

解决方案:

可以通过hvigor脚本实现。

hvigor自定义任务指导:436K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6V1k6i4k6W2L8r3!0H3k6i4u0Q4x3X3g2Z5j5i4u0E0L8$3&6&6L8%4y4Q4x3X3g2U0L8$3#2Q4x3V1k6U0L8W2)9J5c8X3c8G2j5%4y4Q4x3V1k6V1L8$3y4#2L8h3g2F1N6r3q4@1K9h3!0F1i4K6u0r3k6r3!0U0i4K6u0V1k6%4g2A6k6r3g2K6i4K6u0V1g2U0u0Q4x3V1k6U0N6i4y4@1L8$3#2Q4x3X3c8Z5N6X3W2Y4L8%4u0Q4x3X3b7H3x3o6l9H3x3o6l9I4y4U0f1H3z5e0R3%4y4K6f1K6i4K6u0V1g2U0t1`.

hvigor命令行指导:25aK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6V1k6i4k6W2L8r3!0H3k6i4u0Q4x3X3g2Z5j5i4u0E0L8$3&6&6L8%4y4Q4x3X3g2U0L8$3#2Q4x3V1k6U0L8W2)9J5c8X3c8G2j5%4y4Q4x3V1k6V1L8$3y4#2L8h3g2F1N6r3q4@1K9h3!0F1i4K6u0r3k6r3!0U0i4K6u0V1k6%4g2A6k6r3g2K6i4K6u0V1g2U0u0Q4x3V1k6A6k6r3g2Q4x3X3c8U0L8$3#2E0j5h3&6V1i4K6u0V1L8r3W2F1k6g2)9J5k6r3S2$3K9h3N6G2M7W2)9J5k6o6l9H3x3o6l9H3x3o6p5#2y4e0x3K6x3e0M7$3y4o6g2Q4x3X3c8h3x3R3`.`.

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
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中配置。

可参考链接:d66K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6V1k6i4k6W2L8r3!0H3k6i4u0Q4x3X3g2Z5N6h3q4%4k6h3W2Q4x3X3g2U0L8$3#2Q4x3V1k6U0L8$3&6K6N6h3#2W2M7W2)9J5c8X3y4F1i4K6u0r3k6r3!0U0i4K6u0r3K9r3q4J5L8h3!0F1P5h3!0K6i4K6u0V1M7X3g2X3k6i4u0W2L8X3y4W2M7#2)9J5k6q4j5#2i4K6u0r3M7%4W2K6j5$3q4H3i4K6u0V1g2U0g2Q4x3U0y4K9d9q4)9J5k6p5y4z5i4K6g2X3g2p5!0b7d9f1y4Q4y4h3j5H3x3o6l9H3x3o6l9I4z5e0l9@1x3e0l9H3x3o6j5J5i4K6g2X3i4K6g2X3M7r3y4A6k6q4)9J5y4f1f1#2i4K6t1#2b7f1k6Q4x3U0g2n7b7#2)9J5y4f1f1#2i4K6t1#2z5o6g2Q4x3U0g2m8y4b7`.`.


[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 242
活跃值: (385)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
你好,“hvigor自定义任务指导”这个链接我打不开,“hvigor命令行指导”可以打开,请问这是什么情况
2024-11-25 14:48
0
游客
登录 | 注册 方可回帖
返回