若想在短期内,进行安全生产知识的传播,那么答题无疑是有效方式之一。
答题活动小程序v3.0,基于微信原生小程序+云开发实现。主要包含六大功能模块页面,首页、活动规则页、排行榜页、答题页、结果页、答题记录页。
适用于节能知识宣传、学法普法教育、消防安全知识宣传、交通安全答题、网络安全知识竞赛、安全生产知识学习、五四青年节答题活动、有奖答题等应用场景。
节能降碳,绿色发展
线上知识竞赛
绿色环保节能知识、垃圾分类知识
1、本次知识竞赛活动采用微信公众号平台小程序在线答题模式。
2、知识竞赛题库共计200题,其中单选题100道、多选题50道、判断题50道。
3、每次答题题库随机抽取10道题目,答题时间为5分钟,每天限制3次答题机会,每次答题满80分即可抽奖。
4、排名规则,按单次得分,得分相同的按答题用时排。
奖品设置:话费50元、30元、20元、10元不等;
在活动文章点击链接进入,即可参与答题。
v3.0版本升级:
1)拓展功能:
2)升级功能:
1、微信授权登录,获取微信头像昵称
<button class="avatar-wrapper" open-type="chooseAvatar" bind:chooseavatar="onChooseAvatar">
<image class="avatar" src="{{avatarUrl}}"></image>
</button>
<input type="nickname" class="weui-input" placeholder="请输入昵称"/>
const defaultAvatarUrl = 'https://mmbiz.qpic.cn/mmbiz/icTdbqWNOwNRna42FI242Lcia07jQodd2FJGIYQfG0LAJGFxM4FbnQP6yfMxBgJ0F3YRqJCJ1aPAK2dQagdusBZg/0'
Page({
data: {
avatarUrl: defaultAvatarUrl,
},
onChooseAvatar(e) {
const { avatarUrl } = e.detail
this.setData({
avatarUrl,
})
}
})
2、转发分享功能
页面内发起转发。通过给 button 组件设置属性 open-type="share",可以在用户点击按钮后触发 Page.onShareAppMessage 事件,相关组件:button。
onShareAppMessage: function () {
// return custom share data when user share.
},
3、小程序页面栈最多十层
问题:假设小程序内有20个问题页面,答完上一个问题后wx.navigateTo到下一个问题页面,那么到第十题时,你会发现wx.navigateTo跳转不到下一个页面。
分析:这是因为使用wx.navigateTo跳转会把当前页面保存到页面栈中,而小程序页面栈最多十层。
解决:使用wx.redirectTo或wx.reLaunch替代。
4、从题库中随机抽题
// 获取题库-函数定义
getQuestionList() {
// 数据库集合的聚合操作实例
activityQuestion
.aggregate()
.match({ //类似于where,对记录进行筛选
true: _.exists(true)
})
.sample({
size: 20
})
.end()
.then(res => {
// 在控制台打印数据
console.log(res.list)
let data = res.list || [];
// 将数据从逻辑层发送到视图层,通俗的说,也就是更新数据到页面展示
this.setData({
questionList:data
});
})
}
5、成绩由高到底排名
getRankList() {
// 数据库集合的聚合操作实例
activityScore
.where({
_openid: _.exists(true)
})
.orderBy('totalScore', 'desc')
.get()
.then(res => {
// 获取集合数据,或获取根据查询条件筛选后的集合数据。
console.log('[云数据库] [排行榜] 查询成功')
console.log(res.data)
let data = res.data || [];
// 将数据从逻辑层发送到视图层,通俗的说,也就是更新数据到页面展示
this.setData({
rankList:data
});
})
}