当前位置: 首页 > 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.rdtb.cn/news/15938.html

相关文章:

  • 去了哪找网站建设公司网站被百度收录
  • 购物网站开发的难点正规推广平台有哪些
  • 外贸长尾关键词挖掘网站成都新站软件快速排名
  • 网站建设优化公司排名青岛网站设计微动力
  • wordpress主页文件夹seo体系百科
  • 网站开发公司制作平台百度浏览器官网
  • 金湖有哪里做网站的优化seo
  • 网站建设公司小程序开发安康seo
  • 三合一网站介绍广州网站营销优化qq
  • 网站建设行业赚钱么友链互换平台推荐
  • 网络运维工程师招聘信息好的seo网站
  • 网络服务遇到问题请检查网络状况或稍后再试吧滕州seo
  • 广州市做网站小红书推广怎么收费
  • 石家庄网站制作报价网络营销战略
  • APP网站建设开发企业发展百度友情链接
  • 微盟属于营销型手机网站申请网址怎么申请的
  • 买电脑的怎么下wordpress百度seo
  • 铜山微网站开发东莞网络营销公司
  • 用iis为公司做一个内部网站百度seo快速排名优化
  • 美工培训网站合肥网站制作公司
  • 做购物网站的步骤sem优化是什么
  • 网络公司门头照片单页网站seo优化
  • 做网站开票内容是什么软文范例100字
  • 杭州响应式建站价格最近军事新闻热点大事件
  • 如何判断一个网站的价值如何利用seo赚钱
  • 产品做推广一般上什么网站智慧软文
  • 四川建设行业网站有哪些网络营销的几种模式
  • 湛江专业的免费建站在线看crm系统
  • 斗鱼类的直播网站开发新乡网络推广外包
  • 企业网站建设性能分析百度推广开户怎么开