HarmonyOS3.0尝鲜之关键Js Api--动态权限申请的支持 原创 精华

开源夏德旺
发布于 2022-7-29 00:24
浏览
5收藏

这两天华为正式发布了HarmonyOS3.0,对于开发者来说最关心的自然是api版本的升级,目前3.0上支持的最高API版本升级到了API8,其实早在3.0发布之前,官网上已经提前发布了API的相关文档。而我最关心的自然是js api上如何动态申请权限,
为何会最关心这个呢?因为现在做HarmonyOS应用要完全抛弃java,但是大家知道我们好多应用开发需要申请用户动态授权,比如照相机、分布式等等,而最恶心的就是之前动态授权这块只能使用java才能实现。动态授权是什么?看下面图片就清楚了
HarmonyOS3.0尝鲜之关键Js Api--动态权限申请的支持-鸿蒙开发者社区
其实这个动态授权的api很早都在OpenHarmony上支持了,因为oh上的api8已经发布有段时间了。
下面就来看看具体的使用过程吧
首先是创建一个项目,创建项目的时候sdk版本自然是选择8,而ets和js两种都可以支持,任意选其一即可,如下图
HarmonyOS3.0尝鲜之关键Js Api--动态权限申请的支持-鸿蒙开发者社区

下面来以最简单代码体验下动态权限申请的demo

import featureAbility from '@ohos.ability.featureAbility'
const REQUEST_CODE=1
export default {
    data: {
        title: ""
    },
    onInit() {
        this.title = this.$t('strings.world');
        let context = featureAbility.getContext();
        let array = ["ohos.permission.CAMERA"];
    //requestPermissionsFromUser会判断权限的授权状态来决定是否唤起弹窗
    context.requestPermissionsFromUser(array,REQUEST_CODE).then(function(data) {
        console.log("data type:" + typeof(data));
        console.log("data:" + data);
        console.log("data permissions:" + data.permissions);
        console.log("data result:" + data.authResults);
    }, (err) => {
        console.error('Failed to start ability', err.code);
    });
    },

}

以上代码核心就是requestPermissionsFromUser这个api,关于这个api的详细使用说明我不在赘述,请详细查阅官方文档:
https://developer.harmonyos.com/cn/docs/documentation/doc-references/js-apis-context-0000001281480530

官网也给出了最新的权限开发指导,但是我这里稍微指出下官网指南中这块的一个小错误,如下图:
HarmonyOS3.0尝鲜之关键Js Api--动态权限申请的支持-鸿蒙开发者社区

最后,赶紧去把之前分布式相关的一些项目迁移成纯js或者ets的了。

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
6
收藏 5
回复
举报
2条回复
按时间正序
/
按时间倒序
红叶亦知秋
红叶亦知秋

HarmonyOS应用要完全抛弃java,肯定会出现不少问题,希望能尽快解决吧。

回复
2022-7-29 10:00:24
Haoc_小源同学
Haoc_小源同学

谢谢,有帮助


回复
2022-9-21 10:28:22
回复
    相关推荐