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

互联网网站开发合同动态效果的网站建设技术

互联网网站开发合同,动态效果的网站建设技术,西安活动公司,淄博网站建设推广前言 有些前端业务场景需要用到一些传感器,比如运动传感器和方向传感器来实现摇一摇功能。这就需要前端能够直接获取到相关数据,而不是通过 js 调用客户端代码来实现。 权限 还是需要在模块的module.json5文件中添加相关权限 {"name" : &qu…

前言

有些前端业务场景需要用到一些传感器,比如运动传感器和方向传感器来实现摇一摇功能。这就需要前端能够直接获取到相关数据,而不是通过 js 调用客户端代码来实现。

权限

还是需要在模块的module.json5文件中添加相关权限

      {"name" : "ohos.permission.ACCELEROMETER" // 加速度权限},{"name" : "ohos.permission.GYROSCOPE"     // 陀螺仪权限}

由于不是敏感权限,添加后就可以使用,不用进行动态申请。

web组件

在 web 组件中我们需要通过onPermissionRequest方法来获取前端要请求的权限,并且根据用户的选择来判断是否可以授权

 //权限申请.onPermissionRequest((event)=>{console.error("web申请权限",event.request.getAccessibleResource())AlertDialog.show({title: '权限申请',message: event.request.getAccessibleResource().toString(),primaryButton: {value: '拒绝',action: () => {event.request.deny();}},secondaryButton: {value: '允许',action: () => {event.request.grant(event.request.getAccessibleResource());}},autoCancel: false,cancel: () => {event.request.deny();}})})

需要注意的是,这里的event.request.getAccessibleResource()返回一个字符串数组,我们可以通过每一项的值来判断需要是否需要动态申请权限。这里示例中只有运动和方向传感器,因此就直接弹窗询问用户是否可以授权,并且在用户授权后直接通知前端可以使用,不需要进行动态权限申请。

前端

前端页面就比较简单了,按照 w3c标准来就行了


<!DOCTYPE HTML>
<html>
<head><meta charset="utf-8" /><meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /><meta name="misapplication-tap-highlight" content="no" /><meta name="HandheldFriendly" content="true" /><meta name="MobileOptimized" content="320" /><title>运动和方向传感器</title><meta charset="UTF-8"><style>body {font-family: Arial, sans-serif;}</style><script type="text/javascript">// 访问设备的加速度计传感器,并获取其数据。function getAccelerometer() {var acc = new Accelerometer({frequency: 60});acc.addEventListener('activate', () => console.log('Ready to measure.'));acc.addEventListener('error', error => console.log('Error type: ' + error.type + ', error: ' + error.error ));acc.addEventListener('reading', () => {console.log(`Accelerometer ${acc.timestamp}, ${acc.x}, ${acc.y}, ${acc.z}.`);});acc.start();}// 访问设备的陀螺仪传感器,并获取其数据。function getGyroscope() {var gyr = new Gyroscope({frequency: 60});gyr.addEventListener('activate', () => console.log('Ready to measure.'));gyr.addEventListener('error', error => console.log('Error type: ' + error.type + ', error: ' + error.error ));gyr.addEventListener('reading', () => {console.log(`Gyroscope ${gyr.timestamp}, ${gyr.x}, ${gyr.y}, ${gyr.z}.`);});gyr.start();}// 访问设备的方向传感器,并获取其数据。function getAbsoluteOrientationSensor() {var aos = new AbsoluteOrientationSensor({frequency: 60});aos.addEventListener('activate', () => console.log('Ready to measure.'));aos.addEventListener('error', error => console.log('Error type: ' + error.type + ', error: ' + error.error ));aos.addEventListener('reading', () => {console.log(`AbsoluteOrientationSensor data: ${aos.timestamp}, ${aos.quaternion}`);});aos.start();}// 监听设备的运动事件,并执行相应的处理逻辑。function listenDeviceMotionEvent() {removeDeviceMotionEvent();if ('DeviceMotionEvent' in window) {window.addEventListener('devicemotion', handleMotionEvent, false);} else {console.log('不支持DeviceMotionEvent');}}// 移除之前添加的设备运动事件监听器。function removeDeviceMotionEvent() {if ('DeviceMotionEvent' in window) {window.removeEventListener('devicemotion', handleMotionEvent, false);} else {console.log('不支持DeviceOrientationEvent');}}// 处理运动事件。function handleMotionEvent(event) {const x = event.accelerationIncludingGravity.x;const y = event.accelerationIncludingGravity.y;const z = event.accelerationIncludingGravity.z;console.log(`DeviceMotionEvent data: ${event.timeStamp}, ${x}, ${y}, ${z}`);}// 监听设备方向的变化,并执行相应的处理逻辑。function listenDeviceOrientationEvent() {removeDeviceOrientationEvent();if ('DeviceOrientationEvent' in window) {window.addEventListener('deviceorientation', handleOrientationEvent, false);} else {console.log('不支持DeviceOrientationEvent');}}// 移除之前添加的设备方向事件监听器。function removeDeviceOrientationEvent() {if ('DeviceOrientationEvent' in window) {window.removeEventListener('deviceorientation', handleOrientationEvent, false);} else {console.log('不支持DeviceOrientationEvent');}}// 监听设备方向的变化,并执行相应的处理逻辑。function listenDeviceOrientationEvent2() {removeDeviceOrientationEvent2();if ('DeviceOrientationEvent' in window) {window.addEventListener('deviceorientationabsolute', handleOrientationEvent, false);} else {console.log('不支持DeviceOrientationEvent');}}// 移除之前添加的设备方向事件监听器。function removeDeviceOrientationEvent2() {if ('DeviceOrientationEvent' in window) {window.removeEventListener('deviceorientationabsolute', handleOrientationEvent, false);} else {console.log('不支持DeviceOrientationEvent');}}// 处理方向事件。function handleOrientationEvent(event) {console.log(`DeviceOrientationEvent data: ${event.timeStamp}, ${event.absolute}, ${event.alpha}, ${event.beta}, ${event.gamma}`);}</script>
</head>
<body>
<div id="dcontent" class="dcontent"><h3>运动和方向:</h3><ul class="dlist"><li><button type="button" onclick="getAccelerometer()">加速度</button></li><li><button type="button" onclick="getGyroscope()">陀螺仪</button></li><li><button type="button" onclick="getAbsoluteOrientationSensor()">设备方向(绝对定位)</button></li><li><button type="button" onclick="listenDeviceMotionEvent()">设备运动事件</button></li><li><button type="button" onclick="listenDeviceOrientationEvent()">设备方向事件</button></li><li><button type="button" onclick="listenDeviceOrientationEvent2()">设备方向事件(绝对定位)</button></li></ul>
</div>
</body>
</html>

结果

老规矩,放几张效果图
权限申请

img


允许权限

img


拒绝权限

img

http://www.dtcms.com/a/613082.html

相关文章:

  • 网址的输入格式是什么样的seo关键词推广怎么做
  • 莆田网站建设团队门户网站主要包括哪些模块
  • 西安哪家公司网站做的好页游开服表
  • 重庆建设施工安全管理网站上海 专业网站建设
  • 网站开发 技术投标网站中图片加水印
  • 株洲市哪里有做公司官方网站wordpress主题显示不完整
  • 免费注册自己的网站网页制作课程
  • 湖南网站建设服务洛阳做网站公司
  • 小型的游戏网站怎么做网站全站模板
  • 免费网站推广在线观看网站那个做的比较好
  • 网站制作有哪些创新家校互动平台
  • 做 在线观看免费网站有哪些网页开发流程图
  • 公司网站英文学网站开发学费多少
  • 陕西电商网站建设旅游网站开发与建设论文
  • 嘉兴免费自助建站模板网站怎样做关键词优化
  • 免费的网站推广软件营销型网站建设宣传语
  • 做食品生产的网站佛山网站建站
  • 淄博比较好的网站建设公司做网站 什么语言好
  • 深圳高端做网站公司句容住房和城乡建设局网站
  • 哈尔滨做网站哈尔滨学院装修公司加盟品牌
  • 渭南建设工程招标投标网站定制网络营销计划
  • 想搞网站建设南阳网站营销外包公司
  • pc网站如何做seo杭州网络有限公司
  • 重庆网站推广外包企业临夏市做网站电话
  • 网站建设工具公司电脑怎么建网站
  • 嘉定网站设计网站建设依循的原则
  • 经验丰富的网站制作公司申请网站的域名
  • 英文站 wordpress seo优化做企业平台的网站
  • 服装设计参考网站建站宝盒里的手机网站
  • 网站建设的关键词电子商务网站建设产品