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

怎样建设自己的商业网站建设管理网站首页

怎样建设自己的商业网站,建设管理网站首页,县区工会网站建设方案,山东华建建设有限公司网站介绍 本篇Codelab使用ArkTS语言实现计步器应用#xff0c;应用主要包括计步传感器、定位服务和后台任务功能#xff1a; 通过订阅计步器传感器获取计步器数据#xff0c;处理后显示。通过订阅位置服务获取位置数据#xff0c;处理后显示。通过服务开发实现后台任务功能。…介绍 本篇Codelab使用ArkTS语言实现计步器应用应用主要包括计步传感器、定位服务和后台任务功能 通过订阅计步器传感器获取计步器数据处理后显示。通过订阅位置服务获取位置数据处理后显示。通过服务开发实现后台任务功能。 相关概念 计步传感器订阅计步器传感器数据系统返回相关数据。后台任务管理应用中存在用户能够直观感受到的且需要一直在后台运行的业务时如后台播放音乐可以使用长时任务机制。位置服务位置服务提供GNSS定位、网络定位、地理编码、逆地理编码、国家码和地理围栏等基本功能。 相关权限 本篇Codelab用到了计步传感器、后台任务及位置服务功能需要在配置文件module.json5里添加权限 ● ohos.permission.ACTIVITY_MOTION ● ohos.permission.KEEP_BACKGROUND_RUNNING ● ohos.permission.APPROXIMATELY_LOCATION ● ohos.permission.LOCATION ● ohos.permission.LOCATION_IN_BACKGROUND 环境搭建 安装DevEco Studio详情请参考 下载和安装软件。 设置DevEco Studio开发环境DevEco Studio开发环境需要依赖于网络环境需要连接上网络才能确保工具的正常使用可以根据如下两种情况来配置开发环境如果可以直接访问Internet只需进行 下载HarmonyOS SDK 操作。 如果网络不能直接访问Internet需要通过代理服务器才可以访问请参考 配置开发环境 。 开发者可以参考以下链接完成设备调试的相关配置 使用真机进行调试 使用模拟器进行调试 代码结构解读 本篇Codelab只对核心代码进行讲解对于完整代码我们会在源码下载或gitee中提供。 ├──entry/src/main/ets // 代码区 │ ├──common │ │ ├──constants │ │ │ └──CommonConstants.ets // 公共常量 │ │ └──utils // 日志类 │ │ ├──BackgroundUtil.ets // 后台任务工具类 │ │ ├──GlobalContext.ets // 首选项工具类 │ │ ├──LocationUtil.ets // 位置服务工具类 │ │ ├──Logger.ets // 日志工具类 │ │ ├──NumberUtil.ets // 数字处理工具类 │ │ └──StepsUtil.ets // 计步器工具类 │ ├──entryability │ │ └──EntryAbility.ets // 程序入口类 │ ├──pages │ │ └──HomePage.ets // 应用首页 │ └──view │ ├──CompletionStatus.ets // 目标设置页 │ ├──CurrentSituation.ets // 计步信息页 │ └──InputDialog.ets // 自定义弹窗 └──entry/src/main/resources // 资源文件夹构建应用界面 计步器页面主要由Stack堆叠容器组件、Component自定义组件和CustomDialog自定义弹窗组件完成页面布局效果如图所示 // HomePage.ets build(){ Stack({ alignContent: Alignment.TopStart }){ CompletionStatus({progressValue:$progressValue })CurrentSituation({currentSteps:this.currentSteps,startPosition:this.startPosition,currentLocation:this.currentLocation })Row(){ Button(this.isStart ?$r(app.string.stop):$r(app.string.start)) ... } ... } ... }计步传感器 应用启动后申请计步传感器权限获取权限后订阅计步器传感器。通过订阅获取到计步传感器数据解析处理后在页面显示。效果如图所示 // HomePage.ets requestPermissions():void{let atManager abilityAccessCtrl.createAtManager(); try{atManager.requestPermissionsFromUser(this.context, CommonConstants.REQUEST_PERMISSIONS).then((data){ if(data.authResults[0]!0|| data.authResults[1]!0){ return; } const that this; try{sensor.on(sensor.SensorId.PEDOMETER,(data){ try{ if(that.isStart){ if(StepsUtil.checkStrIsEmpty(that.oldSteps)){that.oldSteps data.steps.toString();StepsUtil.putStorageValue(CommonConstants.OLD_STEPS, that.oldSteps); }else{that.currentSteps (data.steps - NumberUtil._parseInt(that.oldSteps,10)).toString(); } }else{that.currentSteps data.steps.toString(); }if(StepsUtil.checkStrIsEmpty(that.stepGoal)||!that.isStart){ return; }StepsUtil.putStorageValue(CommonConstants.CURRENT_STEPS, that.currentSteps);that.progressValue StepsUtil.getProgressValue(NumberUtil._parseInt(that.stepGoal,10),NumberUtil._parseInt(that.currentSteps,10));StepsUtil.putStorageValue(CommonConstants.PROGRESS_VALUE_TAG,String(that.progressValue)); }catch(err){Logger.error(TAG,Sensor on err JSON.stringify(err)); } },{ interval: CommonConstants.SENSOR_INTERVAL }); ... }位置服务 应用启动后申请位置服务权限获取权限后启动服务启动服务后订阅位置服务。通过订阅获取到位置服务数据解析处理后在页面显示。效果如图所示 // HomePage.ets requestPermissions():void{ ...LocationUtil.geolocationOn((location: geoLocationManager.Location){ if(this.latitude location.latitude this.longitude location.longitude){ return; } this.latitude location.latitude; this.longitude location.longitude;let reverseGeocodeRequest: geoLocationManager.ReverseGeoCodeRequest { latitude:this.latitude, longitude:this.longitude };geoLocationManager.getAddressesFromLocation(reverseGeocodeRequest).then(data { if(data[0].placeName){ this.currentLocation data[0].placeName; } }).catch((err: Error){Logger.error(TAG,GetAddressesFromLocation err JSON.stringify(err)); }); }); ... }将位置服务相关的函数封装到工具类中。 // LocationUtil.ets classLocationUtil{ geolocationOn(locationChange:(location: geoLocationManager.Location)void):void{let requestInfo: geoLocationManager.LocationRequest { priority:0x203, scenario:0x300, timeInterval:0, distanceInterval:0, maxAccuracy:0 } try{geoLocationManager.on(locationChange, requestInfo, locationChange); }catch(err){console.error(locationChange error: JSON.stringify(err)); } }geolocationOff():void{geoLocationManager.off(locationChange); } }后台任务 点击开始按钮开启后台任务通过后台任务管理方法配置申请的后台模式等参数启动后台任务。 // HomePage.ets build(){ Stack({ alignContent: Alignment.TopStart }){ ... Row(){ Button(this.isStart ?$r(app.string.stop):$r(app.string.start)) ... .onClick((){ if(this.isStart){ ...BackgroundUtil.stopContinuousTask(this.context); }else{ if(this.stepGoal ||this.currentLocation ){promptAction.showToast({ message: CommonConstants.WAIT }); }else{ ...BackgroundUtil.startContinuousTask(this.context); } }StepsUtil.putStorageValue(CommonConstants.IS_START,String(this.isStart)); }) } ... }// BackgroundUtil.ets export classBackgroundUtil{ publicstaticstartContinuousTask(context: common.UIAbilityContext):void{let wantAgentInfo: wantAgent.WantAgentInfo {wants:[ {bundleName: context.abilityInfo.bundleName,abilityName: context.abilityInfo.name } ],operationType: wantAgent.OperationType.START_ABILITY,requestCode:0,wantAgentFlags:[wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG] };wantAgent.getWantAgent(wantAgentInfo).then((wantAgentObj){ try{backgroundTaskManager.startBackgroundRunning(context,backgroundTaskManager.BackgroundMode.LOCATION, wantAgentObj).then((){Logger.info(TAG,startBackgroundRunning succeeded); }).catch((err: Error){Logger.error(TAG, startBackgroundRunning failed Cause:${JSON.stringify(err)}); }); }catch(error){Logger.error(TAG, stopBackgroundRunning failed. error:${JSON.stringify(error)} ); } }); }publicstaticstopContinuousTask(context: common.UIAbilityContext):void{ try{backgroundTaskManager.stopBackgroundRunning(context).then((){Logger.info(TAG,stopBackgroundRunning succeeded); }).catch((err: Error){Logger.error(TAG, stopBackgroundRunning failed Cause:${JSON.stringify(err)}); }); }catch(error){Logger.error(TAG, stopBackgroundRunning failed. error:${JSON.stringify(error)} ); } } }总结 您已经完成了本次Codelab的学习并了解到以下知识点 计步器传感器的功能实现。位置服务的功能实现。后台任务的功能实现。 为了能让大家更好的学习鸿蒙 (Harmony OS) 开发技术这边特意整理了《鸿蒙 (Harmony OS)开发学习手册》共计890页希望对大家有所帮助https://qr21.cn/FV7h05 《鸿蒙 (Harmony OS)开发学习手册》 入门必看https://qr21.cn/FV7h05 应用开发导读(ArkTS)应用开发导读(Java) HarmonyOS 概念https://qr21.cn/FV7h05 系统定义技术架构技术特性系统安全 如何快速入门https://qr21.cn/FV7h05 基本概念构建第一个ArkTS应用构建第一个JS应用…… 开发基础知识https://qr21.cn/FV7h05 应用基础知识配置文件应用数据管理应用安全管理应用隐私保护三方应用调用管控机制资源分类与访问学习ArkTS语言…… 基于ArkTS 开发https://qr21.cn/FV7h05 Ability开发UI开发公共事件与通知窗口管理媒体安全网络与链接电话服务数据管理后台任务(Background Task)管理设备管理设备使用信息统计DFX国际化开发折叠屏系列……
http://www.yutouwan.com/news/345027/

相关文章:

  • 鞍山企业做网站泰州网络营销
  • 郑州企业网站seo搭建平台高质量
  • 肇庆企业网站关键词优化教程做百度移动端网站排名
  • 网站建设如何接单手机排行榜软件
  • 河南第一火电建设公司网站营销网站建设套餐
  • 一站式营销型网站建设杭州建设工程交易平台
  • 苏州建设工程信息网站小程序拉新推广平台
  • wordpress改了固定链接莱芜网站优化加徽信xiala5
  • 苏中建设集团网站网址wordpress数据过滤
  • 网站定制开发是什么意思有pc网站
  • 大连 网站建设 有限公司东莞今天的最新通知
  • 专业移动网站建设网站首页代码模板
  • 太仓网站建设企业网站做电影网站怎么降低内存
  • 建行购物网站凡科网建站入门教程
  • 个人介绍网站模板建设肯德基网站的好处
  • 全能网站建设网站制作的总结与体会
  • 怎么做单位网站企业网站怎么建设方案
  • 福建建设建设厅官方网站制作网站最新工具
  • 全球最受欢迎的网站排名网站基本建设是什么
  • 网站建设中 敬请期待做托福的网站
  • 运城建设网站好看的wordpress文章模板下载
  • 网站视频链接怎么做做房地产信息网怎么做
  • 手机网站建设价钱是多少正常开发一个网站需要多少钱
  • 成都网站建设哪个好个旧网络推广
  • 湖北省住房部城乡建设厅网站首页企业网站管理系统程序名称
  • dw做的简单的个人网站网盘网页游戏魔域永恒
  • 电子商务网站建设与管理实验报告重庆百度优化
  • 闵行网站推广小程序要钱吗
  • 网站开发厂商电子商务网站建设总结
  • 做二手车网站需要什么手续企业vi设计是什么意思啊