最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

小程序使用webview內(nèi)嵌h5頁面 wx.miniProgram.getEnv失效問題

 更新時間:2023年04月19日 10:47:44   作者:前端小萌新y  
本文主要介紹了小程序使用webview內(nèi)嵌h5頁面 wx.miniProgram.getEnv失效問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

背景

最近接到一個h5需求,和普通的h5不一樣,這個h5頁面是嵌入到小程序中使用的,需求簡單來說就是展示一個跳轉(zhuǎn)按鈕,判斷如果是小程序環(huán)境下就進行跳轉(zhuǎn)到其他小程序頁面。

實現(xiàn)思路

核心邏輯其實就是判斷小程序環(huán)境這一塊,我們可以直接使用wxsdk來進行判斷小程序環(huán)境,由于公司內(nèi)部已經(jīng)有這些api的封裝,所以實現(xiàn)起來比較簡單。
windows.wx實際上就是wxsdk的對象

//判斷是否在微信環(huán)境
const isWeixin = /MicroMessenger/i.test(navigator.userAgent);
// 獲取微信運行環(huán)境
const getWxEnv = () => {
  return new Promise((resolve) => {
    let windows: any = window
    if (!windows.wx) resolve("wechat");
    windows.wx.miniProgram.getEnv((res) => {
      if (res.miniprogram) {
        resolve("miniprogram");
      } else {
        resolve("wechat");
      }
    });
  });
}
// 判斷是否在微信小程序環(huán)境
const isMiniprogram = async () => isWeixin && (await getWxEnv()) === "miniprogram";

之后使用isMinnipragram變量即可直接判斷是否是小程序環(huán)境

問題

wx.miniProgram.getEnv失效,無法正確判斷是否為小程序環(huán)境。
盤查后發(fā)現(xiàn),無法正確拿到windows對象,原因是小程序中使用webview這個標簽去嵌套h5頁面,原理其實是使用了原生的iframe標簽,導(dǎo)致在子頁面中真機無法準確獲取頁面運行環(huán)境

解決

竟然我們在該子頁面沒法精確拿到windows對象,那我們可以去拿父頁面的windows對象,代碼實現(xiàn)如下

//判斷是否在微信環(huán)境
const isWeixin = /MicroMessenger/i.test(navigator.userAgent);
// 獲取微信運行環(huán)境
const getWxEnv = () => {
  return new Promise((resolve) => {
    let windows: any = window
    windows = windows.wx ? windows : parent.window
    if (!windows.wx) resolve("wechat");
    windows.wx.miniProgram.getEnv((res) => {
      if (res.miniprogram) {
        resolve("miniprogram");
      } else {
        resolve("wechat");
      }
    });
  });
}
// 判斷是否在微信小程序環(huán)境
const isMiniprogram = async () => isWeixin && (await getWxEnv()) === "miniprogram";

在windows前面加上個parent去拿到父頁面的windows對象即可,不過我們還是最好要做一下判斷,如果當前子頁面的windows對象中有wx對象,那我們還是直接用該頁面的windows對象即可。

微信sdk經(jīng)常能遇到這種奇奇怪怪的問題,難怪微信開發(fā)社區(qū)一片謾罵了,又一次黑魔法記錄,淺淺記錄一下,希望能對遇到這個問題的朋友有所幫助。

到此這篇關(guān)于小程序使用webview內(nèi)嵌h5頁面 wx.miniProgram.getEnv失效問題的文章就介紹到這了,更多相關(guān)小程序 wx.miniProgram.getEnv失效內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Bootstrap 響應(yīng)式實用工具實例詳解

    Bootstrap 響應(yīng)式實用工具實例詳解

    Bootstrap 提供了一些輔助類,以便更快地實現(xiàn)對移動設(shè)備友好的開發(fā)。這些可以通過媒體查詢結(jié)合大型、小型和中型設(shè)備,實現(xiàn)內(nèi)容對設(shè)備的顯示和隱藏。下面通過本文給大家分享Bootstrap 響應(yīng)式實用工具,一起看看吧
    2017-03-03
  • JS正則表達式封裝與使用操作示例

    JS正則表達式封裝與使用操作示例

    這篇文章主要介紹了JS正則表達式封裝與使用操作,涉及javascript使用正則表達式針對郵箱、手機號、身份證、用戶名、中文等簡單驗證操作技巧,需要的朋友可以參考下
    2019-05-05
  • JavaScript實現(xiàn)瀑布流布局

    JavaScript實現(xiàn)瀑布流布局

    這篇文章主要介紹了原生JavaScript實現(xiàn)瀑布流布局的相關(guān)資料,實現(xiàn)鼠標下拉圖片自動加載效果,和百度圖片效果類似,需要的朋友可以參考下
    2016-01-01
  • JavaScript之移動端H5生成圖片解決方案講解

    JavaScript之移動端H5生成圖片解決方案講解

    這篇文章主要介紹了JavaScript之移動端H5生成圖片解決方案講解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • 小程序hover-class點擊態(tài)效果實現(xiàn)

    小程序hover-class點擊態(tài)效果實現(xiàn)

    這篇文章主要介紹了小程序hover-class點擊態(tài)效果實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-02-02
  • JS實現(xiàn)同一個網(wǎng)頁布局滑動門和TAB選項卡實例

    JS實現(xiàn)同一個網(wǎng)頁布局滑動門和TAB選項卡實例

    這篇文章主要介紹了JS實現(xiàn)同一個網(wǎng)頁布局滑動門和TAB選項卡效果,通過簡單的自定義切換函數(shù)setTab實現(xiàn)頁面元素的遍歷及屬性切換的功能,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-09-09
  • javascript各種復(fù)制代碼收集

    javascript各種復(fù)制代碼收集

    javascript各種形式的復(fù)制代碼效果,有直接復(fù)制url,復(fù)制文本框中的內(nèi)容、隱藏表單中的內(nèi)容,復(fù)制span中的內(nèi)容
    2008-09-09
  • javascript 通過鍵名獲取鍵盤的keyCode方法

    javascript 通過鍵名獲取鍵盤的keyCode方法

    下面小編就為大家分享一篇javascript 通過鍵名獲取鍵盤的keyCode方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • bootstrap table動態(tài)加載數(shù)據(jù)示例代碼

    bootstrap table動態(tài)加載數(shù)據(jù)示例代碼

    本篇文章主要介紹了bootstrap table動態(tài)加載數(shù)據(jù)示例代碼,可以實現(xiàn)點擊選擇按鈕,彈出模態(tài)框,加載出關(guān)鍵詞列表,有興趣的可以了解一下。
    2017-03-03
  • ES6 對象的新功能與解構(gòu)賦值介紹

    ES6 對象的新功能與解構(gòu)賦值介紹

    這篇文章主要介紹了ES6 對象的新功能與解構(gòu)賦值介紹,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-02-02

最新評論

驻马店市| 高唐县| 乌鲁木齐县| 津市市| 平远县| 鲁甸县| 高尔夫| 德安县| 城口县| 米易县| 连平县| 文山县| 资兴市| 饶平县| 华蓥市| 新昌县| 永德县| 清远市| 克什克腾旗| 新丰县| 阜城县| 体育| 云龙县| 同江市| 秭归县| 酉阳| 右玉县| 通海县| 溧阳市| 江都市| 平阴县| 淄博市| 绥阳县| 阿合奇县| 长武县| 自治县| 新田县| 张家川| 突泉县| 苍梧县| 剑阁县|