【内容摘要】
前端开发中一直比较困扰的两个难点,就是h5端和小程序。因为两者既有相同点,又有不同点。今天就简单的介绍一下两者混合开发。那么混合开发的优点在哪呢?
首先第一点:小程序的审核周期以及审核流程的复杂度。相信开发过小程序的开发者都踩过其中的坑。
第二点:对于初级开发者对于小程序的开发并不是那么熟悉,需要去学习开发者文档。在摸索中开发,开发成本过大,耗时久。
【实现逻辑】
下面就简单的介绍一下小程序和h5的混合开发:核心就是我们做出一个小程序基本功能的模板,
其中微信授权登录和微信获取手机号码显得尤为重要。其次就是在小程序和h5端的互相跳转。
【具体步骤】
1.公众号跳转到小程序进行授权登录。
首先需要明白的是,小程序的授权登录是微信发起的。在这里推荐使用微信官方的高版本:jweixin-1.3.2.js。因为微信扫码也会用到。
我们在从H5端跳转到小程序进行授权登录。也就是说我们需要点击事件的实现。具体点击事件加在哪里,根据实际情况而定。这里会出现环境的判断,是否为小程序环境。因为授权登录毕竟是要在小程序端实现的。下面看代码:
jumpProgram:function(e){ //jumpProgram:点击事件的名称
var that=e.data.context;
console.log('跳转小程序');
if(that.isMiniProgram){ //isMiniProgram:判断是否为小程序环境
that.wx.miniProgram.redirectTo({ //miniProgram:跳转函数
url: '/pages/alert/alert'
})
}
},
备注:这里微信会进行一次身份验证。也就是wx变量的引入
wx.config({
debug:this.ops.info.debug,
appId:this.ops.info.appId,
timestamp:this.ops.info.timestamp,
nonceStr:this.ops.info.nonceStr,
signature:this.ops.info.signature,
jsApiList:this.ops.info.jsApiList
});
//小程序的跳转函数
MiniProgram:function(){
return (navigator.userAgent.match(/micromessenger/i) && navigator.userAgent.match(/miniprogram/i)) || window.__wxjs_environment === 'miniprogram';
},
具体的要跳转的小程序路径是自己定义的。应为小程序模板的授权是在alert页面的。所以我就是这么来定义的。这样就实现了从h5端跳转到小程序。
2.小程序跳转:
首先需要了解小程序的场景值变量:scene。它可以获取到小程序当前的页面和具体的参数。
我们可以拿到需要的参数进行具体的操作。还需要进行一步重要的操作就是模拟扫码登录
这种跳转我是放在当审核版本号不相等的时候。因为什么审核的时候没有必要:
if(options && options.type === 'index' && options.fake_id && app.globalData.agent_id==99101){
url = app.URL + 'weichat_enter_4_app_wholefarm?fake_id=' + options.fake_id + '&empower_code=5678'
}
//globalData.agent_id:我们定义的全局变量,也就是从scene拿到的变量,因为这个变量后续会进行一系列的模拟扫码操作
else if (options && options.type === 'index' && options.fake_id && !app.globalData.agent_id){
console.log(123)
url = app.URL + 'weichat_enter_4_app_wholefarm?fake_id=' + options.fake_id + '&empower_code=5678'
}
else if(options && options.type === 'index' && options.fake_id && app.globalData.agent_id !==99101){
console.log(456);
url = app.URL + 'weichat_enter_4_app_wholefarm?fake_id=' + options.fake_id + '&empower_code=5678'+'&jump_type=701'+'&new_page=400_application_4_process.html'+'&new_page_para=id_public_goods_order_record-_-'+app.globalData.agent_id+'&id_public_agent_info=99101'
}else {
url = app.URL + '004_mobile_web_site_lishui_auto/front_page_index.html';
}
//
此处为跳转到中。
3.快速审核机制
首先需要明白,我们提交的版本。是提供给什么人员查看的,所以是我们在编写静态页面就已经准备好的数据。我们需要定义一个全局变量。决定版本的全局变量。我们在加载一个后端返回给我们的变量。如何两者相等,就是我们准备好给审核人员查看的版本。要记得,当我们提交完代码审核之后,我们的小程序代码是不能改动的,所以后端在将版本号修改一下,两者版本号不相等,我们就可以拿到动态数据了。之后具体的页面跳转,就要根据实际项目需要,进行实际跳转。
if (parseInt(data.shenhe_banben.version_name) === app.DATA.version)