在线下活动中,签到组件可以根据用户的地理位置和时间信息完成签到。用户只需在指定地点和时间范围内操作,即可完成签到,过程简便高效。对于活动主办方而言,签到数据能够帮助他们统计参与人数,验证出席情,并优化活动管理。而对用户来说,签到不仅能作为参与凭证,还可能与奖励、积分等福利挂钩,提升活动的互动性和吸引力。众所周知,在展会、培训、社群活动等场景中,高效的签到体验能够显著提升用户的参与感和满意度。
关键组件及素材
条件式容器:在不同情况下显示不同样式
实现步骤
创建数据模型
由于需求中要求的是线下活动签到,所以需要一张活动表记录活动的签到开始时间、签到过期时间、签到地点、签到范围,其中尤其注意的是签到地点的类型为经纬度.
在页面上获取活动的信息
选中页面,为页面添加一个数据源,用于获取数据库中活动的数据,需要注意一下过滤条件.
获取用户的信息
1. 获取实时的时间
✦ 创建一个页面变量-current_datetime,类型为日期时间(带地区)
✦ 创建一个定时任务,打开立即触发的按钮,添加一个触发行为设置页面变量,对象为上一步创建的页面变量-current_datetime,值为常量数据/当前日期时间
2. 获取实时的经纬度
✦ 创建一个页面变量-current_location,类型为经纬度
✦ 选中之前创建的定时任务,添加一个触发行为定位/获取位置,并选择上一步创建的页面变量-current_location
条件配置
1. 根据需求梳理条件:
✦ 在需求中优先级最高的是判断用户是否签到,当用户已经签到,无论处在其他的什么条件时,都要显示已签到;
✦ 其次是时间,我们可以根据时间,将条件分为三大块,时间点分别是签到开始时间和签到结束时间。
✧ 之前~签到开始时间:用户的当前时间在这个区域内,就显示活动暂未开始
✧ 签到开始时间~签到结束时间:在这个时间区域内,需要额外去判断用户和活动的距离,分为未到达签到范围和开始签到
✧ 签到结束时间~之后:在这个时间区域内,就显示已过期
2. 添加一个条件式容器,并根据上面的分析配置5个条件式子容器,并为每个条件式子容器配置文字组件,保证在调试的时候,知道当前显示的是哪种情况。
3. 设置具体条件
✦ 已签到:当前用户数据-活动签到记录-count大于0;注意,需要给count添加过滤。
✦ 过了签到时间:数据源-activity-签到过期时间小于页面变量-current_datetime
✦ 未到签到时间:数据源-activity-签到开始时间大于页面变量-current_datetime
✦ 到了签到时间但是距离不够
✧ 运算数选择公式
✧ 公式的结果类型选择无限精度小数,方法选择DISTANCE
✧ 位置1赋值为页面变量-current_location,位置2赋值为数据源-activity-签到地点
✧ 设置距离大于数据源-activity-签到范围
✦ 到了签到时间且在签到范围内:不用做任何配置
行为配置
1. 选中时间到了且距离够了的条件式子容器,为其添加行为请求-修改表数据-添加 活动签到记录,给行为中的参数用户-账户赋值当前用户数据-ID,活动_活动赋值数据源-activity-id
2. 在行为的成功时配置刷新当前用户数据
附录
☞ 体验链接:
https://wqgy73ndp82x5.cave.functorz.com/m83t1n60
☞ 项目链接:
https://zion.functorz.com/tool/L6ARjmebvMQ/WEB?code=v4svl6uYMqVzh
完整视频教学
相关阅读
更多学习资料
❖ Zion官网 https://functorz.com/
❖ 官方教程 https://docs.functorz.com/
❖ 视频学习 https://space.bilibili.com/615448342
❖ 找人开发 https://community.functorz.com/agency
❖ 更多案例 https://functorz.com/case
❖ Zion用户群
点击 阅读原文 查看更多教学文档


