最近比较无聊,所以抽空做了一个问答小程序的系列教程,分享源码,就是微信问答小程序v1.0使用云开发构建。界面截图答题小程序大致如下图所示:结构层主程序由索引、测试、结果三个界面组成。结构层次如下图所示:index:包含开始答题界面的页面布局和样式,以及js逻辑;test:包含答题界面的页面布局和样式,以及js逻辑;results:包含答题界面的页面布局和样式,以及js逻辑;app:全局配置文件、全局变量等;style:微信小程序的基础UIStyle;云开发数据库:存储相关主题数据。1、索引启动界面的主要功能是主页大图和信息的显示,跳转和分享按钮。(1)按钮跳转的关键代码是catchtap点击事件和goToTest事件处理函数。.wxml开始答题.js//事件处理器goToTest:function(){wx.navigateTo({url:'../test/test'})},(2)分享实现,在按钮上使用open-type="share"属性,在页面js中配置onShareAppMessage。.wxml推荐给朋友.jsonShareAppMessage(res){return{title:'@你,快乐一起来参加消防安全知识答题活动吧~'}},2.考试答题界面需要做的事情是:连接数据库,获取题目数据;与所选选项的前端交互;点击切换到下一题;系统自动判断答题结果,计算分数;将乐谱提交至数据库保存;回答完问题后,跳转到回答结果界面。(1)连接数据库获取题型数据;//获取题库——函数定义getQuestionList(){//显示加载提示框wx.showLoading({title:'拼命加载'});//构建查询条件activityQuestion.where({//指定查询条件,返回一个新的集合引用,新的查询条件为true:_.exists(true)}).get().then(res=>{//获取集合数据,或者get根据查询条件过滤收集的数据。console.log('[云数据库][activityQuestion]查询成功')console.log(res.data)letdata=res.data||[];//将数据从逻辑层发送到视图层,通俗地说,就是更新数据到页面显示this.setData({questionList:data,index:0});//隐藏加载提示框wx.hideLoading();})},(2)选中选项的前端交互;.wxml{{value}}.js//选择选项事件radioChange(e){this.data.chooseValue[this.data.index]=e.detail.value;},(3)点击切换到下一题;.wxmlnextquestion.js//下一个问题/提交按钮nextSubmit(){//如果没有选中if(这个.data.chooseValue[this.data.index]==undefined||this.data.chooseValue[this.data.index].length==0){returnwx.showToast({title:'请选择答案!',icon:'none',duration:2000})}//判断所选选项是否为正确答案this.chooseJudge();//判断是否为最后一题this.lastJudge();},//判断是否是最后一题lastJudge(){if(this.data.index{//跳转到答题页面查看结果wx.redirectTo({url:'../results/results?id='+res._id});wx.hideLoading();})}(6)答题后跳转到答题结果界面//跳转到答题结果页查看结果wx.redirectTo({url:'../results/results?id='+res._id});3、成绩界面主要是查询答题状态和显示分数。答题页面时,实现将分数提交数据库保存。然后就可以从这里的数据库中获取了。.jsPage({data:{totalScore:null,wrong:0,zql:null},onLoad(options){//查看答题结果this.getExamResult(options.id);},//系统自动评分getExamResult(id){wx.showLoading({title:'Systemscoring'});activityRecord.doc(id).get().then(res=>{letexamResult=res.data;let{wrong,totalScore}=examResult;this.setData({totalScore,wrong,zql:(20-wrong)/20*100})wx.hideLoading();})},})嗯,云开发搭建的微信问答小程序,v1。0版本结束,源码已提交gitee,撒花~下个版本v2.0正在开发中……