uniapp WIFI上下班打卡

这篇具有很好参考价值的文章主要介绍了uniapp WIFI上下班打卡。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

大纲

uniapp WIFI上下班打卡,uniapp,uView,uni-app,前端,javascript


 🥙  uniapp官网:uni-app官网  

 🥙  WIFI功能模块:

        1、下载 wifi 插件 uni-WiFi

        2、在 manifest.json 中 App权限配置中 配置权限

                1. ACCESS_WIFI_STATE (访问权限状态)

                2. CHANGE_WIFI_STATE(更改wifi状态)

                3. ACCESS_FINE_LOCATION(访问线路位置)

                4. ACCESS_COARSE_LOCATION(访问文件位置)

uniapp WIFI上下班打卡,uniapp,uView,uni-app,前端,javascript

        3、编写方法来获取WiFi的名称

        4、后台设定好 wifi mac 名称。前端通过调用获取网络的方法 获取当前连接WIFI的信息从而拿到 mac 进行比对,验证是否是公司WIFI。

需要使用到的一些方法:

        1、uni.getConnectedWifi(OBJECT)

uniapp WIFI上下班打卡,uniapp,uView,uni-app,前端,javascript

        2、uni.connectWifi(OBJECT)

uniapp WIFI上下班打卡,uniapp,uView,uni-app,前端,javascript

uniapp WIFI上下班打卡,uniapp,uView,uni-app,前端,javascript

 代码展示: 

<template>
	<view class="content">
		<u-cell-group>
			<u-cell icon="account-fill" title="员工姓名" :value="staffName"></u-cell>
			<u-cell icon="calendar-fill" title="打卡日期" :value="$moment().format('YYYY-MM-DD')"></u-cell>
			<u-cell icon="clock-fill" title="上班时间" :value="currentTime"></u-cell>
		</u-cell-group>
		<view>
			<view style="margin-top: 16px">网络MAC为:{{mac}}</view>
		</view>
		<view>
			<u-button type="primary" :loading='loadingForm' @click="clockIn">{{currentTime}}上班打卡</u-button>
		</view>
	</view>
</template>

<script>
	import * as api from '@/request';
	export default {
		data() {
			return {
				mac: '未获取',
				loadingForm: false,
				moveClock: '移动打卡',
				networkIp: '',
				currentTime: '', //当前时间
			}
		},
		onLoad() {
			this.mac = options.mac
		},
		mounted() {
			// 在组件挂载时获取当前时间
			this.currentTime = this.getCurrentTime()
			// 每隔一秒更新当前时间
			setInterval(() => {
				this.currentTime = this.getCurrentTime()
			}, 1000)
		},
		methods: {
            //获取网络状态
			getNetworkType() { 
				let MainActivity = plus.android.runtimeMainActivity();
				let Context = plus.android.importClass('android.content.Context');
				// 导入WIFI管理 和 WIFI 信息 的class  
				plus.android.importClass("android.net.wifi.WifiManager");
				plus.android.importClass("android.net.wifi.WifiInfo");
				plus.android.importClass("android.net.wifi.ScanResult");
				plus.android.importClass("java.util.ArrayList");
				// 获取 WIFI 管理实例  
				let wifiManager = MainActivity.getSystemService(Context.WIFI_SERVICE);
                //打开wifi,false为关闭
				wifiManager.setWifiEnabled(true); 
				// 获取当前连接WIFI的信息
				let info = wifiManager.getConnectionInfo()
				// 获取当前 WIFI 连接的 SSID (WIFI 名称)
				this.mac = info.getBSSID()
			},

			//获取当前时间
			getCurrentTime() {
				const date = new Date()
				//获取时间的小时部分,例如当前时间为2023-05-16 10:30:00,则 date.getHours() 的返回值为 10。
				const hours = date.getHours().toString().padStart(2, '0')
                //.toString() 方法是将获取到的小时数转换成字符串类型的方法
				const minutes = date.getMinutes().toString().padStart(2, '0')
				const seconds = date.getSeconds().toString().padStart(2, '0')
				return `${hours}:${minutes}:${seconds}`
			},
			
			//上班打卡
			clockIn() {
				this.form.moveClock = '移动打卡',
				this.form.networkIp = this.mac
				this.loadingForm = true
				console.log('打卡信息:', this.form)
				api.Commuting(this.form).then(res => {
					if (res.code == 0) {
						uni.showToast({
							icon: 'none',
							title: res.msg
						});
						setTimeout(() => {
							uni.navigateBack({
								delta: 1
							});
						}, 2000);
					} else if (res.code == 1) {
						uni.showToast({
							icon: 'error',
							title: res.msg
						});
					}
				}).finally(() => {
					this.loadingForm = false
				});
			},
		},
	}
</script>
<style>
</style>

以上代码片段是通过 Native API(本地API) 与 Android Wi-Fi (安卓Wi-Fi) 系统服务进行交互的案例。以下是重点代码的详解:

       🥪 1、获取主 Activity(活动/窗体) 的引用,这对于访问 Android 系统服务是必需的

   let MainActivity = plus.android.runtimeMainActivity();

  🥪 2、从 Android 框架导入 Context 类,它提供了访问应用程序特定资源和服务的能力

           let Context = plus.android.importClass('android.content.Context');

       🥪 3、从 Android 框架导入 WifiManager 类,它允许管理 Wi-Fi 连接

           plus.android.importClass("android.net.wifi.WifiManager");

       🥪 4、导入其他与 Wi-Fi 操作相关的类

           plus.android.importClass("android.net.wifi.WifiInfo");

    plus.android.importClass("android.net.wifi.ScanResult");

    plus.android.importClass("java.util.ArrayList");

       🥪 5、使用主 Activity 的 getSystemService() 方法获取 WifiManager 类的实例

          let wifiManager = MainActivity.getSystemService(Context.WIFI_SERVICE);

       🥪 6、调用 WifiManager 实例的 setWifiEnabled() 方法将 Wi-Fi 启用,false为关闭

          wifiManager.setWifiEnabled(true);

        🥪 7、调用 WifiManager 实例的 getConnectionInfo() 方法获取当前连接信息

          let info = wifiManager.getConnectionInfo(); 

          获取当前 WIFI 连接的 SSID (WIFI 名称)
          this.mac = info.getBSSID()

    uni.navigateBack() 函数用于关闭当前页面并返回上一个页面或多个页面 ( 我这边了设置等待1秒钟,再跳转到上一个页面)

    setTimeout(() => { uni.navigateBack({ delta: 1 }); }, 1000);

效果展示:

uniapp WIFI上下班打卡,uniapp,uView,uni-app,前端,javascript uniapp WIFI上下班打卡,uniapp,uView,uni-app,前端,javascript

 uniapp WIFI上下班打卡,uniapp,uView,uni-app,前端,javascriptuniapp WIFI上下班打卡,uniapp,uView,uni-app,前端,javascript文章来源地址https://www.toymoban.com/news/detail-611763.html

到了这里,关于uniapp WIFI上下班打卡的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • uView 在 uni-app 中的使用

    提示:正文内容: uView 官网: https://www.uviewui.com uView 是 uni-app 生态专用的 UI 框架 关于uView的取名来由,首字母u来自于uni-app首字母,uni-app是基于Vue.js,Vue和View(延伸为UI、视图之意)同音,同时view组件是uni-app中 最基础,最重要的组件,故取名uView,表达源于uni-app和Vue之意,

    2024年02月15日
    浏览(50)
  • uni-app uView自定义底部导航栏

    因项目需要自定义底部导航栏,我把它写在了组件里,基于uView2框架写的(vue2);   在components下创建tabbar.vue文件,代码如下:  app.vue (有没有大佬知道为什么这个样式加载app.vue里才生效)  pages.json配置 页面使用: ( mine.vue ) 注: current是底部导航栏的下标,你在tabb

    2024年02月14日
    浏览(80)
  • 【uni-app项目如何引入 uView组件库】

    uView官方文档 第一步: 在公司创建完成uniapp项目后引入uView 第二步: 您如果是使用HBuilder X创建的uniapp项目,使用uView组件库的话需要在HBuilder X下载插件库 下载 uni_modules ,(如果这个看不懂可以看官方文档) (1) HBuilder X插件库中下载 uni_modules 现在是已经将 uView导入到项目中了

    2024年02月05日
    浏览(56)
  • uni-app+uView实现点击查看大图片的效果

    参数说明

    2024年02月10日
    浏览(47)
  • 【uni-app】安装uView-ui组件步骤

    uView是uni-app生态专用的UI框架,uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码, 可发布到iOS、Android、H5、以及各种小程序(微信/支付宝/百度/头条/QQ/钉钉)等多个平台(引言自uni-app网)。但目前除微信小程序,其它小程序平台的兼容可能存在一些问题,后

    2024年02月14日
    浏览(42)
  • uni-app 之 安装uView,安装scss/sass编译

    uni-app 之 安装uView,安装scss/sass编译 image.png image.png image.png 点击HBuilder X 顶部,工具,插件安装,安装新插件 image.png image.png 安装成功! 注意,一定要先登录才可以安装 image.png 1. 引入uView主JS库 在项目根目录中的 main.js 中,引入并使用uView的JS库,注意这两行要放在 import Vu

    2024年02月10日
    浏览(52)
  • uni-app使用uview-ui实现动态更改底部tabbar

    需求:根据不同的权限(用户 0, 物业 1)展示不同的tabbar 这里使用的是uview-ui@1.8.4 tabbar 在utils文件夹下新建一个tabbar.js文件,来存储不同权限下的底部导航数据 在page.json文件里,把tabbar里的几个页面去重放进去tabBar。 使用vuex 新建store 文件夹存储相关数据 在入口文件 mai

    2024年02月12日
    浏览(51)
  • 使用uni-app+uview创建小程序工程并支持请求后端接口

    一、使用工具:     1.hubilderx   下载地址:HBuilderX-高效极客技巧     2.微信开发者工具   下载地址:微信开发者工具下载地址与更新日志 | 微信开放文档     3.uview组件库API:Color 色彩 | uView 2.0 - 全面兼容nvue的uni-app生态框架 - uni-app UI框架 二、使用hubuilderx创建uni-app项目

    2024年02月11日
    浏览(60)
  • uni-app 客服按钮可上下拖动动

    项目需求:                因为悬浮客服有时候会遮挡住界面内容,故需要对悬浮的气泡弹窗做可拖动操作         movable-area: 可拖动区域          movable-view: 可移动的视图容器,在页面中可以拖拽滑动或双指缩放。 属性说明 属性名 类型 默认值 说明 平台差异

    2024年02月10日
    浏览(46)
  • 使用vue2开发uni-app项目--引入uview-ui

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 一、安装 1、安装uview-ui 2、安装scss支持 二、配置 1、在main.js中引入uView库 2、uni.scss文件中引入uView的全局SCSS主题文件  3、在APP.vue文件中引入uView基础样式 4、在pages.json中 配置easycom组件模式

    2024年02月04日
    浏览(63)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包