当前位置: 首页 > news >正文

交友网站该如何做东莞整站优化排名

交友网站该如何做,东莞整站优化排名,义乌网,软件开发工程师属于什么行业配置声明权限 在module.json5配置文件中声明权限。不论是system_grant还是user_grant类型都需要声明权限,否则应用将无法获得授权。 {"module" : {// ..."requestPermissions":[{"name": "ohos.permission.DISCOVER_BLUETOOTH…

配置声明权限

在module.json5配置文件中声明权限。不论是system_grant还是user_grant类型都需要声明权限,否则应用将无法获得授权。

{"module" : {// ..."requestPermissions":[{"name": "ohos.permission.DISCOVER_BLUETOOTH",//权限名称。"reason":"$string:need_ble",//描述申请权限的原因。 当申请的权限为user_grant权限时,此字段必填。"usedScene": { //描述权限使用的场景和时机。当申请的权限为user_grant权限时,此字段必填。"abilities": [ //标识需要使用到该权限的Ability,标签为数组形式"EntryAbility"],"when": "always"//标识权限使用的时机 - inuse:表示为仅允许前台使用。- always:表示前后台都可使用。}},{"name": "ohos.permission.LOCATION","reason":"$string:need_ble","usedScene": {"abilities": ["EntryAbility"],"when": "always"}},{"name": "ohos.permission.APPROXIMATELY_LOCATION","reason":"$string:need_ble","usedScene": {"abilities": ["EntryAbility"],"when": "always"}}]}
}

权限校验(可略)

  1. 获取调用者的身份标识:tokenId。
  2. 待校验的权限名:ohos.permission.xxx。
  3. 使用checkAccessToken接口对当前调用者进行权限校验。
    class RequestPermission {async checkAccessToken(permissions: Array<Permissions>/*权限名*/): Promise<boolean> {//获取调用者的身份标识let callerTokenId = rpc.IPCSkeleton.getCallingTokenId();console.log("RequestPermission RpcServer: getCallingTokenId result: " + callerTokenId);var atManager = abilityAccessCtrl.createAtManager();try {const promises = permissions.map( (permission, index) => {//进行权限校验return atManager.checkAccessToken(callerTokenId, permission).then((data) => {console.log(`RequestPermission checkAccessToken success, data->${JSON.stringify(data)}`);if( index >= permissions.length - 1 ) {return true;}}).catch((err) => {console.log(`RequestPermission checkAccessToken fail, err->${JSON.stringify(err)}`);return false;});});const results = await Promise.all(promises);// 检查所有 Promise 的结果return results.every(result => result);} catch(err) {console.log(`RequestPermission catch err->${JSON.stringify(err)}`);return false;}}
    }export default new RequestPermission()

    例:有 'ohos.permission.APPROXIMATELY_LOCATION',  'ohos.permission.LOCATION', 'ohos.permission.CAMERA'三个权限 已授权前两个调用结果如下

     RequestPermission.checkAccessToken(permissions).then(results => {console.log('RequestPermission checked successfully:', results);}).catch(error => {console.error('RequestPermission check failed:', error);});打印如下I 0FEFE/JsApp: RequestPermission RpcServer: getCallingTokenId result: 537654415I 0FEFE/JsApp: RequestPermission checkAccessToken success, data->-1I 0FEFE/JsApp: RequestPermission checkAccessToken success, data->-1I 0FEFE/JsApp: RequestPermission checked successfully: false

向用户申请权限

class RequestPermission {async reqPermissionsFromUser(permissions: Array<Permissions>): Promise<boolean> {let context = getContext(this) as common.UIAbilityContext;let atManager = abilityAccessCtrl.createAtManager();try {const data = await atManager.requestPermissionsFromUser(context, permissions);let grantStatus: Array<number> = data.authResults;let length: number = grantStatus.length;for (let i = 0; i < length; i++) {if (grantStatus[i] !== 0) {// 如果有任何一个权限没有被授权,立即返回 falsereturn false;}}// 所有权限都被授权,返回 truereturn true;} catch (err) {console.error(`RequestPermission requestPermissionsFromUser failed, code is ${err.code}, message is ${err.message}`);// 如果发生异常,也返回 falsereturn false;}}
}

回调版


import abilityAccessCtrl, { Permissions } from '@ohos.abilityAccessCtrl';
import common from '@ohos.app.ability.common';
import rpc from '@ohos.rpc';class RequestPermission {/**** @param permissions 需要请求的权限数组* @param callback 权限结果 true/false*/reqPermissionsFromUser(permissions: Array<Permissions>, callback:(result:boolean)=>void) {let context = getContext(this) as common.UIAbilityContext;let atManager = abilityAccessCtrl.createAtManager();try {atManager.requestPermissionsFromUser(context, permissions).then((data)=>{let grantStatus: Array<number> = data.authResults;let length: number = grantStatus.length;for (let i = 0; i < length; i++) {if (grantStatus[i] !== 0) {callback(false);}}callback(true);})} catch (err) {console.error(`requestPermissionsFromUser failed, code is ${err.code}, message is ${err.message}`);callback(false);}}/**** @param permissions 需要检查的权限数组* @param callback*/checkAccessToken(permissions: Array<Permissions>, callback:(result:boolean)=>void) {let callerTokenId = rpc.IPCSkeleton.getCallingTokenId();var atManager = abilityAccessCtrl.createAtManager();try {permissions.map((permission, index) => {return atManager.checkAccessToken(callerTokenId, permission).then((data) => {console.log(`checkAccessToken success, data->${JSON.stringify(data)}`);if( index >= permissions.length - 1 ) {callback(true);}}).catch(() => {callback(false);});});} catch(err) {console.log(`RequestPermission catch err->${JSON.stringify(err)}`);callback(false,);}}
}export default new RequestPermission()

http://www.dinnco.com/news/62165.html

相关文章:

  • 网站备案了还放在香港空间可以么网络推广员好做吗
  • 有批量做基因结构的网站吗优化系统
  • 诸城哪里做网站seo综合查询站长工具怎么用
  • 哪里有做商城的网站宁波网站制作优化服务
  • pyhton做网站宁波seo排名优化培训
  • 网站开发需要哪些岗位百度业务员联系电话
  • 网乐科技网站建设十大免费无代码开发软件
  • 耒阳在那做网站最新注册域名查询
  • 客户端 网站开发 手机软件开发网络优化器下载
  • 开通网站软件的会计科目怎么做西安seo托管
  • 网站建设关键要做好哪些工作活动宣传推广方案怎么写
  • 淘客网站怎么做百度总部公司地址在哪里
  • 找人做网站流程中国新闻网
  • 网站编排成人短期电脑培训班学费
  • 优秀网站推广方案国内seo工具
  • 国外的设计网站app吗淘宝关键词搜索排行榜
  • 上海工作网站广告平台网站有哪些
  • 个人网站栏目设计qq群引流推广平台
  • 那个视频网站最好最全网址俄罗斯搜索引擎
  • 免费一键建站官网大全今天的新闻内容
  • 手机网站微信链接怎么做哪个合肥seo好
  • 世界网站制作百度热度指数排行
  • dw和asp.net动态网站开发足球最新世界排名表
  • 单页面网站制作教程seo优化外包
  • 做企业网站的好处百度旗下所有app列表
  • 信诺盛世网站百度软件下载
  • 建站之星用做什么网站南城网站优化公司
  • 新站点seo联系方式百度下载安装免费
  • 福州建设局网站seo是什么单位
  • 网站被篡改处理企业如何网络推广