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

想建个企业网站西安优化外包

想建个企业网站,西安优化外包,网站建设实训建议,外贸新闻网站背景 随着HarmoneyOS 应用的井喷式增长,各大厂商也都加快了自己原生应用鸿蒙化的脚步,今天使用高德打车的时候忽然间想到高德在鸿蒙上有没有实现呢?打开next bate 版本的手机发现高德已经上架了,但是功能还不是特别完善。那么几乎每个应用都…
背景

随着HarmoneyOS 应用的井喷式增长,各大厂商也都加快了自己原生应用鸿蒙化的脚步,今天使用高德打车的时候忽然间想到高德在鸿蒙上有没有实现呢?打开next bate 版本的手机发现高德已经上架了,但是功能还不是特别完善。那么几乎每个应用都会用到高德的一些定位或者地图SDK他们是否跟其他平台一样方便集成呢?

说干就干!

回到家立马打开高德官网,发现鸿蒙星河版的定位、地图、导航SDK已经上线了

image.png

那今天就小试牛刀,实现一下鸿蒙星河版的定位SDK集成

集成过程

首先我们点击sdk 的类目进去后查看入门指南可以看到基础要求

image.png

从第三步开始这里有的同志可能就有点迷惑了,所以我们直接从第三步开始讲解

这里说到我们要拿到appid

我们在page的方法中添加如下代码来实现appid的获取(代码如下)

aboutToAppear(): void {
let flag = bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_SIGNATURE_INFO;
let bundleInfo = bundleManager.getBundleInfoForSelfSync(flag)
let appId = bundleInfo.signatureInfo.appId;
this.appid=appId
}

image.png

可以看到控制台已经打印出了appid 的字符串,我们需要把他复制出来,等一下要使用这个appid

拿到appid之后进入到高德控制台开始创建我们的应用

image.png

填写好应用名称后选择类型,然后新建

image.png

Key 名称根据规则填写,然后选择HarmoneyOS NEXT平台,把我们刚才复制的appid粘贴上去,点击提交

image.png

提交成功后就为我们创建了一个应用,我们把key复制下来,等会就用这个key来进行定位的鉴权

接下来我们开始定位项目的配置

第一步,配置 module.json5首先,声明权限

"requestPermissions": [{"name": "ohos.permission.APPROXIMATELY_LOCATION","reason": "$string:Harmony_location_permission_reason","usedScene": {"abilities": ["Harmony_location_demoAbility"],"when": "always"}},{"name": "ohos.permission.LOCATION","reason": "$string:Harmony_location_permission_reason","usedScene": {"abilities": ["Harmony_location_demoAbility"],"when": "always"}},{"name": "ohos.permission.LOCATION_IN_BACKGROUND","reason": "$string:Harmony_location_permission_reason","usedScene": {"abilities": ["Harmony_location_demoAbility"],"when": "always"}},{"name": "ohos.permission.INTERNET","reason": "$string:Harmony_location_permission_reason","usedScene": {"abilities": ["Harmony_location_demoAbility"],"when": "always"}},{"name": "ohos.permission.KEEP_BACKGROUND_RUNNING","reason": "$string:Harmony_location_permission_reason","usedScene": {"abilities": ["Harmony_location_demoAbility"],"when": "always"}}]
...
Json

第二步,在工程的oh-package.json5文件中添加定位开发包从"dependencies": { “@amap/amap_lbs_common”: “>=1.0.2”, “@amap/amap_lbs_location”: “>=1.0.1”}Json

第三步,初始化定位

1导入所需模块

import { AMapLocationManagerImpl } from '@amap/amap_lbs_location';
import { AMapPrivacyAgreeStatus, AMapPrivacyInfoStatus, AMapPrivacyShowStatus } from '@amap/amap_lbs_common';
import { Permissions } from '@ohos.abilityAccessCtrl';
import common from '@ohos.app.ability.common';
import abilityAccessCtrl, { PermissionRequestResult } from '@ohos.abilityAccessCtrl';
import { BusinessError } from '@ohos.base';

2设置 Key(获取Key),并初始化隐私政策,

 创建AMapLocationManagerImpl
locationManger?: AMapLocationManagerImpl; 
private context = getContext(this);onPageShow() {//设置KeyAMapLocationManagerImpl.setApiKey("您的key");//初始化隐私政策AMapLocationManagerImpl.updatePrivacyShow(AMapPrivacyShowStatus.DidShow, AMapPrivacyInfoStatus.DidContain, getContext(this))AMapLocationManagerImpl.updatePrivacyAgree(AMapPrivacyAgreeStatus.DidAgree, getContext(this))//创建AMapLocationManagerImplthis.locationManger = new AMapLocationManagerImpl(this.context);
}
Json

3动态申请相关权限

  reqPermissionsFromUser(permissions: Array<Permissions>): void {let context: Context = getContext(this) as common.UIAbilityContext;let atManager: abilityAccessCtrl.AtManager = abilityAccessCtrl.createAtManager();// requestPermissionsFromUser会判断权限的授权状态来决定是否唤起弹窗atManager.requestPermissionsFromUser(context, permissions).then((data: PermissionRequestResult) => {let grantStatus: Array<number> = data.authResults;let length: number = grantStatus.length;for (let i = 0; i < length; i++) {if (grantStatus[i] === 0) {// 用户授权,可以继续访问目标操作} else {// 用户拒绝授权,提示用户必须授权才能访问当前页面的功能,并引导用户到系统设置中打开相应的权限return;}}// 授权成功}).catch((err: BusinessError) => {console.error(`Failed to request permissions from user. Code is ${err.code}, message is ${err.message}`);})}提示
在onPageShow生命周期函数中调用该方法this.reqPermissionsFromUser(['ohos.permission.APPROXIMATELY_LOCATION','ohos.permission.LOCATION',
]); 

这样我们的工程配置就完成了,当我们打开应用后可以发现获取权限的弹窗提示(如图所示)

image.png

然后继续进行单次定位的配置

首先是单次定位模块的导入

import { AMapLocationOption, AMapLocationReGeocodeLanguage, AMapLocationType, IAMapLocationListener } from '@amap/amap_lbs_location';
import geoLocationManager from '@ohos.geoLocationManager';

然后自定一个openLocation的方法,我们使用一个按钮来触发单词定位功能(初始界面如下)
image.png

通过点击开启定位,来执行单次定位的方法,从而获取经纬度

openLocation方法如下

openLocation(){let options: AMapLocationOption = {priority: geoLocationManager.LocationRequestPriority.FIRST_FIX, //定位优先配置选项scenario: geoLocationManager.LocationRequestScenario.UNSET, //定位场景设置maxAccuracy: 0, //定位精度 单位:米singleLocationTimeout: 3000, //指定单次定位超时时间locatingWithReGeocode: false, //定位是否返回逆地理信息reGeocodeLanguage: AMapLocationReGeocodeLanguage.Chinese, //逆地址语言类型isOffset: false //是否加偏}let listener: IAMapLocationListener = {onLocationChanged: (location) => {this.locationInfo=location}, onLocationError: (error) => {}};
this.locationManger?.setLocationListener(AMapLocationType.Single,listener) //设置定位信息监听this.locationManger?.setLocationOption(AMapLocationType.Single,options) //设置定位配置项this.locationManger?.requestSingleLocation() //单次定位}在button的点击事件中调用Button("开启定位").onClick(()=>{this.openLocation()})

image.png

可以看到已经获取到了,当前的经纬度,这样高德的定位功能就完美实现了

写在最后

●如果你觉得这篇内容对你还蛮有帮助,我想邀请你帮我三个小忙:
●点赞,转发,有你们的 『点赞和评论』,才是我创造的动力。
●关注小编,同时可以期待后续文章ing🚀,不定期分享原创知识。
●更多鸿蒙最新技术知识点,请移步前往小编:https://gitee.com/

在这里插入图片描述

http://www.hkea.cn/news/151006/

相关文章:

  • 网站设计的评估最近发生的热点新闻
  • 设建网站广告投放渠道
  • 日ip5000的网站怎么做如何提高网站在搜索引擎中的排名
  • 网站描文本链接怎么做深圳互联网营销
  • 一个服务器做两个网站自己做网站
  • 百草味网站建设的活动方案营销型企业网站有哪些
  • 论文课程网站 建设背景项目推广方式有哪些
  • 内部网站建设关键词优化推广策略
  • 一个公司可以做几个网站备案贵阳网络推广排名
  • 武汉高端网站建设免费广告网
  • 大理建网站常用于网站推广的营销手段是
  • js怎么做网站跨境电商网站
  • 台州外贸网站建设百度推广费用多少
  • 虚拟机怎么做网站空间培训班管理系统 免费
  • wordpress离线文章发布郑州seo关键词排名优化
  • 龙岗区网站建设中国职业培训在线
  • 南山网站建设外包优化网站
  • 个人怎么做网站推广神起网络游戏推广平台
  • 做网站的关键技术运营推广的方式和渠道有哪些
  • jsp做就业网站网推项目
  • 网站开发的目的和意义重庆seo排名电话
  • 顺义专业建站公司最有效的线上推广方式
  • 大连网站网站搭建制作百度识图 上传图片
  • 给人做网站多少钱黑科技引流推广神器怎么下载
  • 沈阳做网站最好的公司百度快照怎么删除
  • 设置本机外网ip做网站网站免费制作平台
  • 有什么推荐做简历的网站2024的新闻有哪些
  • 申请做网站 论坛版主惠州seo外包服务
  • 网站照片上传不了域名解析ip
  • 胖小七网站建设2022最新国际新闻10条简短