邏輯非常簡單,判斷是否是微信環(huán)境。否則就是H5了。微信環(huán)境要分三種:
1、公眾號
2、小程序
3、webView
? ? 針對webview:這里給大家啰嗦幾句;
小程序里面套H5連接,也是比較難處理的一種,但是優(yōu)點很多,對于一些不能上架的小程序或者上架難度大又需要利用小程序的功能的H5系統(tǒng),針對webView的判斷就非常有必要了。
利用webView的方式調(diào)用小程序功能(前提是得有個現(xiàn)成小程序),可實現(xiàn)入口統(tǒng)一管理、分享、支付等等。
獲取當(dāng)前登錄環(huán)境:
function getEnv() {
? ? let envss ="H5"
? ? if (wechat.isWechat()){
? ? ? ? envss="WX_PUBLIC"
? ? }
? ? if (wechat.isWebView()){
? ? ? ? envss="WEB_VIEW"
? ? }
? ? wechat.isMiniProgram().then(res=>{
? ? ? ? if (res){
? ? ? ? ? ? envss="MINI"
? ? ? ? }
? ? })
? ? return envss;
}
判斷是否是微信:? ??
? isWechat() {
? ? ? ? var ua = window.navigator.userAgent.toLowerCase();
? ? ? ? if (ua.match(/micromessenger/i) == 'micromessenger') {
? ? ? ? ? ? // console.log('是微信客戶端')
? ? ? ? ? ? return true;
? ? ? ? } else {
? ? ? ????????? ?// console.log('不是微信客戶端')
? ? ? ? ? ? return false;
? ? ? ? }
? ? }
判斷是否是webView
? ? isWebView() {
? ? ? ? if (this.isWechat()) {
? ? ? ? ? ? var u = navigator.userAgent;
? ? ? ? ? ? if (u.indexOf("miniProgram") != -1) {
? ? ? ? ? ? ? ? return true;
? ? ? ? ? ? }
? ? ? ? ? ? return false
? ? ? ? }
? ? ? ? return false;
? ? }
判斷是否是小程序
? ? ?isMiniProgram() {
? ? ? ? return new Promise((resolve, reject) => {
? ? ? ? ? ? if (-1 == navigator.userAgent.toLowerCase().indexOf("micromessenger")) {
? ? ? ? ? ? ? ? resolve(false)
? ? ? ? ? ? ? ? return
? ? ? ? ? ? } else {
? ? ? ? ? ? ? ? wx.miniProgram.getEnv((res) => {
? ? ? ? ? ? ? ? ? ? if (!res.miniprogram) {
? ? ? ? ? ? ? ? ? ? ? ? resolve(false)
? ? ? ? ? ? ? ? ? ? ? ? return
? ? ? ? ? ? ? ? ? ? } else {
? ? ? ? ? ? ? ? ? ? ? ? resolve(true)
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? })
? ? ? ? ? ? }
? ? ? ? })
? ? }