微信小程序也可以实现定位打卡/签到打卡了(附源码)

这篇具有很好参考价值的文章主要介绍了微信小程序也可以实现定位打卡/签到打卡了(附源码)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

微信小程序也可以实现定位打卡/签到打卡了(附源码)

✅作者简介:大家好我是瓜子三百克,一个非科班出身的技术程序员,还是喜欢在学习和开发中记录笔记的博主小白!
📃个人主页:瓜子三百克的主页
🔥系列专栏:OC语法
🤟格言:作为一个程序员都应该认识到,好的代码是初级工程师都可以理解的代码, 伟大的代码是可以被学习一年计算机专业的新生所理解。
💖如果觉得博主的文章还不错的话,请点赞👍+收藏⭐️+留言📝支持一下博主哦🤞
🔥系列文章:

1、微信小程序实时定位的要做的那些事,你学废了吗?
2、微信小程序也可以实现定位打卡/签到打卡了


本篇文章带你实现实时定位功能:包括实时定位监听、定位权限判断、经纬度间距计算、判断当前位置是否在目的地的范围区间。

主要应用场景包括但不限于:定位打卡

1、在 package.json 文件中添加导入文件

"dependencies": {
		"@rattan/location":"1.0.2",
},

2、代码示例

<template>
	<view class="page-content">
		<zm-page-navview title="实时定位" :isBack="true" :borderBottom="false" slot="top" />
		<view class="back-content">
			<view class="flex-content u-flex-1 czm-h-0">
				<scroll-view class="scrollV" scroll-y="true">
					<view>
						<view class="titleV">目标定位:</view>
						<view class="textV">{{JSON.stringify(desPos)}}</view>
						<view class="titleV">wx实时定位:</view>
						<view class="textV">{{curWxPos?JSON.stringify(curWxPos):"---"}}</view>
						<view class="titleV">当前实时定位距离:</view>
						<view class="textV">{{curWxDis}}</view>

						<view class="titleV">uni获取定位:</view>
						<view class="textV11">{{curLocation}}</view>

					</view>
				</scroll-view>
			</view>

			<button class="btn_2" type="primary" @tap="click">10后点击,uni获取经纬度</button>
		</view>
	</view>
</template>

<script>
	import zmtools from "@/zmtools"

	export default {
		name: "realTimePositionPage",
		components: {},
		computed: {
			curWxDis() { // 微信实时定位距离
				let __dis = (zmtools.speedy.zmCalcuDistance(this.curWxPos?.lat, this.curWxPos?.lon, this.desPos.lat,
					this.desPos
					.lon) * 1000).toFixed(1)
				console.log("__dis:", __dis)
				return __dis == "NaN" ? "---" : (__dis + "米");
			},
			curLocation() {
				return this.uniLocation?JSON.stringify(this.uniLocation):"---"
			}
		},
		data() {
			return {
				desPos: {
					lat: 24.490041,
					lon: 118.184591,
				},
				curWxPos: null, // 微信当前实时定位
				uniLocation: null,
			}
		},

		onLoad(options) {
			this.getLocation()
		},

		onUnload() {},

		onShow() {
			zmtools.location.monitor.zmBegin()
			uni.$on('iLocationSuc', (e) => {
				console.log("iLocationSuc_e:", JSON.stringify(e));
				this.curWxPos = {
					lat: e?.latitude,
					lon: e?.longitude,
				}
			})
			uni.$on('iLocationErr', (e) => {
				console.log("iLocationErr_e:", JSON.stringify(e));
			})
		},
		onHide() {
			zmtools.location.monitor.zmEnd()
			uni.$off('iLocationSuc');
			uni.$off('iLocationErr');
		},

		methods: {
			click() {
				this.getLocation();
			},

			async getLocation() {
				var _temp = await zmtools.location.func.zmLocation();
				this.uniLocation = {
					latitude:_temp.latitude,
					longitude:_temp.longitude,
				};
				console.log("_temp: " + JSON.stringify(_temp));
			}
		},
	}
</script>

<style lang="scss" scoped>
	.page-content {
		width: 100vw;
		height: 100vh;
		background: #F5F9FC;

		.back-content {
			margin: 30rpx;
			padding: 20rpx;
			//  底部安全高度,顺序不要乱
			height: calc(100vh - (88rpx + var(--status-bar-height)) - 30rpx - constant(safe-area-inset-bottom) - 30rpx - (88rpx + 30rpx));
			height: calc(100vh - (88rpx + var(--status-bar-height)) - 30rpx - env(safe-area-inset-bottom) - 30rpx - (88rpx + 30rpx));
			border-radius: 20rpx;
			box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.05);
			background: #FFFFFF;

			.flex-content {
				width: 100%;
				height: 100%;

				.scrollV {
					width: 100%;
					height: 100%;
					.titleV {
						font-size: 32rpx;
						font-weight: bold;
						color: #333333;
						margin-bottom: 30rpx;
						text-align: left;
					}

					.textV {
						margin-bottom: 20rpx;
						font-size: 28rpx;
						color: #666666;
						text-align: left;
					}
				}

			}

			.btn_2 {
				position: absolute;
				width: 80%;
				height: 88rpx;
				line-height: 88rpx;

				bottom: calc(constant(safe-area-inset-bottom) * 0.5 + 30rpx);
				bottom: calc(env(safe-area-inset-bottom) * 0.5 + 30rpx);
				border-radius: 44rpx;
				background-image: linear-gradient(129deg, #FFE061 0%, #FFC723 100%);
				font-size: 36rpx;
				color: #1C1C1C;
			}

			button::after {
				border: none;
			}
		}
	}
</style>


微信小程序也可以实现定位打卡/签到打卡了(附源码)

源码/demo展示:
1、gitee:https://gitee.com/chenzm_186/demo-real-time-location-mini
2、csdn:https://download.csdn.net/download/weixin_38633659/85436545


**🏆结束语🏆 **

最后如果觉得我写的文章对您有帮助的话,欢迎点赞✌,收藏✌,加关注✌哦,谢谢谢谢!!文章来源地址https://www.toymoban.com/news/detail-418187.html

到了这里,关于微信小程序也可以实现定位打卡/签到打卡了(附源码)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 基于微信小程序的学生签到系统设计与实现(源码+lw+部署文档+讲解等)

    💗 博主介绍 :✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌💗 👇🏻 精彩专栏 推荐订阅 👇🏻 2023-2024年最值得选的微信小程序毕业设

    2024年03月21日
    浏览(42)
  • 基于微信小程序实现日常学习打卡系统项目演示【附项目源码】

    基于微信小程序实现日常学习打卡系统项目演示 微信小程序上线的初衷除了让用户使用更加方便,同时也给开发者提供更加方便便捷的开发环境来进行更加高效的进行开发。任何一套系统的设计与开发都需要一套完整的系统框架,用来保证整套系统的完整运作。对于微信小程

    2024年02月02日
    浏览(33)
  • 基于微信小程序的课程点名签到系统设计与实现 报告+项目源码及数据库文件

    题目:微信点名系统小程序 目录 第一节 系统分析与设计 1.1 需求分析 1.2 数据库设计 1.2.1 数据库模型图(初步设计) 1.3 系统功能设计 第二节 系统开发及实现 2.1 系统开发平台及工具 2.2 系统页面及使用说明 2.1.2 学生签到页面(首页) 2.1.3 学生查询页面(课程、我的) 2.

    2024年02月12日
    浏览(32)
  • 课堂签到微信小程序的设计与实现 服务器Java+MySQL(附源码 调试 文档)

    摘要 本文介绍了一种《课堂签到微信小程序的设计与实现》。该系统分为三种用户角色,分别是管理员、教师和学生。管理员主要负责班级管理、学生管理、教师管理、课程管理、签到管理、请假管理和系统管理;教师用户主要进行注册登录、学生信息查看、课程信息查看、

    2024年02月05日
    浏览(32)
  • Android高德地图定位实现签到打卡功能(全网最详细+收藏)

    前言         本章根据高德地图API,实现打卡签到功能。用到了定位SDK 和地图SDK、覆盖物。打卡范围图形可以支持多种形状,如: 圆形 、 长方形 、 多边形。 核心逻辑:     获取当前定位信息,然后通过Marker绘制小图标进行展示,并在onLocationChanged回调方法中不断重新绘

    2024年02月03日
    浏览(29)
  • 微信小程序签到页面的日历实现

    业务需求:签到页面用日历展示签到情况,只显示当月的。 过期未签的显示灰色字,已签的显示橙色字,当天显示白色字加一个背景图。  1、新建日历组件(取名:calendar)  2、calendar.wxml代码 3、calendar.wxss 4、calendar.js(组件只需要传入当前月签到的日期列表  2023-3-1格式,格

    2024年02月10日
    浏览(39)
  • 微信小程序实现连续签到七天

    签到满了七天之后,签到第八天会回到第一天重新开始签到 断签之后会从第一天重新开始

    2024年02月09日
    浏览(34)
  • 小程序实现签到打卡功能--用户端

    一、实现需求 实现用户在规定区域内完成打卡操作并以日历的形式记录。 注:本篇文章能够实现打卡记录是建立在有后端接口传输返回的数据上 二、效果展示 三、业务逻辑 点击打卡按钮,打卡成功后弹出相应的弹窗,并在日历记录上留下当天打卡的痕迹。在规定区域内打

    2024年02月08日
    浏览(40)
  • 微信小程序 - 实现容器卡片翻转动画效果,类似考勤打卡签到时翻转效果(像翻牌抽奖类似的效果动画)详细示例源码教程,一键复制开箱即用!

    微信小程序项目中,实现了任意容器像卡片一样的翻转效果动画,类似钉钉打卡签到点击时的翻转动画! 示例源码的注释非常详细,保证一键复制后改改样式就能应用到你的项目中去了。

    2024年02月10日
    浏览(39)
  • 前端vue地图定位并测算当前定位离目标位置距离可用于签到打卡

    前端vue地图定位并测算当前定位离目标位置距离可用于签到打卡, 阅读全文下载完整代码请关注微信公众号: 前端组件开发 效果图如下:       # #### 使用方法 ```使用方法 !-- // 腾讯地图key注册地址(针对H5端,manifest.json中web配置,配置定位与地图 若是微信小程序只需配置微

    2024年02月08日
    浏览(46)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包