亚洲视频二区I天堂网av 在线I丰满人妻AV一区二区三I088精品在线观看视频IAV在线网站免费I亚洲人成影院在线I91精品91久久久777777I131M久I日日摸日日

027-81331413

快速小程序開發之微信小程序內嵌H5

發布時間:2020-10-31 瀏覽:3223

  微信小程序中可以直接運行 web 頁面,這一新組件 web-view 的產生,可能直接導致小程序數量迎來一波高峰。本篇博文將從業務選型,微信小程序后臺配置,使用 web-view 完成登錄業務以及在實戰中如何調試一次性帶你感受小程序內嵌 H5 的風采,幫你更有底氣的使用微信小程序新組件 web-view。

  技術選擇

  H5 轉成小程序方案路線優缺點對比

  上表是從原有 H5 轉相似業務邏輯的微信小程序的方案路線優缺點對比,基于時間的限制以及當前主流多端編譯的可靠性考量,最終團隊認為通過使用小程序組件 web-view 內嵌 H5 的方式比較適合當前的開發需求。 web-view 的兼容性問題主要是要在基礎庫在1.6.4+及以上才可以用,而微信官方統計基礎庫在1.6.4+ 的覆蓋率已達 95% 以上,這個指標也符合產品大人的要求,于是便愉快的選擇了 web-view 內嵌 H5 的技術方案。

  H5 和小程序技術對比

  

快速小程序開發之微信小程序內嵌H5

  從上表中可以對比出 H5 相較于小程序的優缺點,方便各位前端大大評估需求。尤為重要的是因為小程序封裝的比較嚴重所以小程序開發的靈活性沒有 H5 那么高,這就要我們注意對交互設計的評估。

  web-view 微信小程序配置系列問題

  配置域名

  業務域名中配置的就是小程序以及 H5 和 H5 中引用 iframe 的域名。這里要特別注意的是假如 H5 中有內嵌的 iframe 也要配置進去

  這里需要服務端的朋友配合一下,將校驗文件放置在將要嵌套的業務域名的根目錄。所以要注意后端是否可以支持,否則會有各種扯皮的問題

  選擇基礎庫

  開發的時候不要忘記配置微信小程序的基礎庫,注意 web-view 要在基礎庫1.6.4以上的版本庫才能使用

  H5 中引入微信的 jssdk,其中包含了h5和小程序直接的通訊方法

  web-view 與小程序的通信

  官方給出了兩種通信方法(如下圖所示) 1、postMessage 通信 在 H5 中需要先用 wx.miniProgram.postMessage 接口,把需要分享的信息,推送給小程序。 在用戶點擊了小程序后退、組件銷毀、分享這些特殊事件之后,小程序頁面通過 bindmessage 綁定的函數讀取 post 信息。 2、設置 web-view 組件的 URL 通信 H5 跳轉小程序:

  toWeixin() {

  wx.miniProgram.navigateTo({url: '/pages/myWelfare/myWelfare'});

  }

  小程序跳轉 H5: 首先在 .wxml 中引入 web-view 組件

  之后在小程序的 js 文件中設置通過 URL 以問號傳參的方式傳入參數到 H5 中

  if(!option.page){

  this.setData({

  url: `${this.data.url}?${test}`

  });

  } else {

  this.setData({

  url: `${this.data.url}${option.page}?${test}`

  });

  }

  小程序內嵌 H5 登錄實例

  小程序登錄實現方案流程圖:

  clipboard.png

  如上圖所示:整個登錄的 cookie 的傳遞經歷了四個步驟:

  在小程序登錄后獲取到后端傳遞的 cookie 并保存

  通過 web-view 中的 url 傳遞到 H5 中

  在 H5 中得到傳遞的值并寫到 cookie 中

  在訪問接口的時候帶上 cookie 2、從微信小程序響應頭中獲得 cookie 存到 storage 中:

  首先在登錄頁獲取到響應頭中的登錄 cookie 放到 storage 中

  wx.setStorageSync('cookie', res.header["Set-Cookie"]);

  在微信小程序中每次請求接口的時候,將 storage 中的 cookie 取出來,放到請求頭中,如果傳入不正確或者沒有傳入 cookie 值,后臺將返回 errorCode 為 3002 ,此時前端跳轉到登錄頁面。

  var headerCookie = wx.getStorageSync('cookie');

  wx.request({

  url: murl,

  data: parameter.data || {},

  header: {

  'Cookie': headerCookie

  },

  method: parameter.method || 'POST',

  success: function(res) {

  if(res.data.code == 3002) {

  wx.redirectTo({

  url: '../login/login'

  })

  } else {

  parameter.success && parameter.success(res);

  }

  }

  3、獲得 cookie 并拼接到 URL 中

  首先在 web-view 頁面獲取 cookie ,并匹配到需要傳遞的字段,之后將此字段放到 url 中通過問號傳參的方式傳遞到 H5 中

  try {

  var value = wx.getStorageSync('cookie');

  if (value) {

  test = value.match(new RegExp("(^| )"+"jxi-m-sid"+"=([^;]*)(;|$)"))[2] ;

  }

  }

  url: 'https://www.xxx.com#',

  if(!option.page){

  this.setData({

  //在這里放入傳遞的字段(如test)

  url: `${this.data.url}?${test}`

  });

  } else {

  this.setData({

  //在這里放入傳遞的字段,也可以拼接更多的信息(如option.page)

  url: `${this.data.url}${option.page}?${test}`

  });

  }

  4、獲取 cookie 并在 H5 中使用 在 H5 中獲取 cookie 值,并帶入 cookie ,注意 domain 和 path 的設置,這兩個值必須都有:

  let isDebug = (window.location.href).indexOf('myf') > -1;

  let host = isDebug ? 'jd' : 'jdf';

  //獲得傳遞的字段

  let c =window.location.href.split('?')[1];

  //設置cookie

  document.cookie = `jxi-m-sid=${c};domain=${host};path=/`;

  小程序內嵌 H5 調試解決方案

  關于調試效果緩存的問題 小程序的更新機制即當小程序進入后臺,客戶端會維持一段時間的運行狀態,超過一定時間后(目前是 5 分鐘)會被微信主動銷毀。 小程序銷毀后再重新啟動時如果發現有新版本,將會異步下載新版本的代碼包,并同時用客戶端本地的包進行啟動,即新版本的小程序需要等下一次銷毀后再重新啟動時才會應用上。

  內嵌 H5 調試問題 因為微信小程序開發者工具中并沒有提供內嵌 H5 的調試工具,所以我們可以采取以下方法調試

  在 H5 開發的時候,我們可以在微信小程序開發者工具中找到 web-view 傳遞給 H5 的 URL 鏈接將此鏈接黏貼到瀏覽器中即可像平時開發 H5 一樣調試

  對于手機端 H5 的測試調試可以在 H5 中引入 vconsole 這個插件來調試程序,他可以讓我們看到接口情況以及 H5 中的日志。

  總結

  看到這里,我們分別從

  web-view 技術的優缺點

  web-view 微信小程序配置系列問題

  web-view 與小程序的通信

  小程序內嵌 H5 登錄實例

  小程序內嵌 H5 調試解決方案

  五個方面梳理了關于微信小程序 webview 組件的使用。 當然,微信小程序組件 web-view 還并不完善,其中很難實現一些特殊的交互,比如返回按鈕返回的頁面只能是上一級不能是任意自定義的頁面等問題,這就需要我們更好的溝通以及規劃交互設計,同時反饋并等待微信小程序官方的更新和支持。


主站蜘蛛池模板: 天天鲁一鲁摸一摸爽一爽 | www.天天干 | 91精品看片 | 欧美性做爰猛烈叫床潮 | 日韩中文字幕国产 | 国产一卡久久电影永久 | 草樱av| 久久99免费视频 | 2024国产精品视频 | 色婷婷成人网 | 在线v片免费观看视频 | av在线官网 | 国产精品999久久久 久产久精国产品 | 婷婷www | 欧美日在线观看 | 日韩av黄 | 亚洲专区欧美 | 在线精品亚洲一区二区 | 夜色成人网| 欧产日产国产69 | 香蕉在线观看 | 91久久丝袜国产露脸动漫 | 97久久精品午夜一区二区 | 在线观看免费日韩 | 一区二区久久久久 | 久久久色| 九九九九九九精品任你躁 | 婷婷网在线| 日韩二区在线 | 国产老熟 | 国产日韩中文字幕在线 | 超碰电影在线观看 | 久久久久久久久久久久av | 黄色特一级片 | 国产美女主播精品一区二区三区 | 亚洲国产剧情av | 天天天天天天干 | 白丝av免费观看 | 成人av片免费观看app下载 | 97国产精品 | 国内精品久久久久影院优 | 欧美激情综合色 | 中文字幕中文字幕在线中文字幕三区 | 免费在线观看一级片 | 久久精品久久99精品久久 | 免费看十八岁美女 | 在线观看成人国产 | 成人午夜精品 | 国产小视频国产精品 | 九九久久久久久久久激情 | 欧美精品一区二区在线观看 | 在线一区av| 国产精品久久av | 91黄色成人 | 亚洲视频观看 | 九9热这里真品2 | 精品国产成人av | 久久久久久久久久网站 | 日韩在线电影一区 | 天天综合五月天 | av网站大全免费 | 久久综合中文字幕 | 丁香激情综合 | 欧美一区二区三区四区夜夜大片 | 国产69精品久久久久久久久久 | 国产999精品久久久久久 | 久久久精品国产一区二区电影四季 | 日本二区三区在线 | 久草免费色站 | 精品伊人久久久 | 久热av| 久久欧美精品 | 亚洲天堂自拍视频 | 天天操天天干天天爽 | 菠萝菠萝在线精品视频 | 欧美精选一区二区三区 | 久久久久久久久久国产精品 | 免费日韩一区二区三区 | 成人午夜电影久久影院 | 97国产精品 | 国产福利中文字幕 | 日日操天天爽 | 又紧又大又爽精品一区二区 | 亚洲国产精品免费 | 午夜视频在线观看欧美 | 成人蜜桃视频 | 91福利社在线观看 | 久久久久免费看 | 精品国产一区在线观看 | 亚洲一级电影视频 | 久久一区国产 | 亚洲精品乱码久久久久久蜜桃动漫 | 黄色av三级在线 | 天天天在线综合网 | 欧美大jb| 亚洲欧美国产精品久久久久 | 色吊丝在线永久观看最新版本 | 91视频在线播放视频 | 天天操天天干天天 |