背景
由于以前的项目是公众号的 h5 版本,现在需要一个小程序版本,为了节省人力和时间,我们的做法就是直接在 webview 上指向公众号的 h5 地址,需要在小程序后台配置业务域名,小程序还提供了开发者在 webview 调用 jssdk,流程跟开发微信公众号一样方便
webview 使用 jssdk
小程序 webview 使用 jssdk 跟公众号开发一样,需要调用 config 来初始化配置,等 WeixinJSBridgeReady 事件触发后再调用对应的方法,否则程序在 js 执行立即调用会出现无效
if (typeof WeixinJSBridge == 'undefined') {  if (document.addEventListener) {    document.addEventListener('WeixinJSBridgeReady', onBridgeReady, false);  } else if (document.attachEvent) {    document.attachEvent('WeixinJSBridgeReady', onBridgeReady);    document.attachEvent('onWeixinJSBridgeReady', onBridgeReady);  }} else {  onBridgeReady();}有时候我们需要单独在小程序处理一些逻辑,例如实现小程序的支付功能,小程序的跳转功能等等。可以通过以下方法来判断运行环境是否是小程序
// web-view下的页面内function ready() {  console.log(window.__wxjs_environment === 'miniprogram'); // true}if (!window.WeixinJSBridge || !WeixinJSBridge.invoke) {  document.addEventListener('WeixinJSBridgeReady', ready, false);} else {  ready();}// 或者wx.miniProgram.getEnv(function (res) {  console.log(res.miniprogram); // true});小程序和 webview 跳转
webview 跳转到小程序原生页面,使用 navigateTo 或者 redirectTo 来实现
wx.miniProgram.navigateTo({ url: '/path/to/page' });wx.miniProgram.redirectTo({ url: '/path/to/page' });webview 传参到小程序
webview 传参到小程序原生页面,通过url 参数来传递
wx.miniProgram.navigateTo({ url: '/path/to/page?a=1&b=2' });然后在小程序的生命周期 onload 回调事件的 query 参数可以获取到对应的 json 对象
onLoad(query) {  console.log(query.a);   // 1  console.log(query.b);   // 2} 
     
               
              