• <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        當(dāng)前位置:雨林木風(fēng)下載站 > 蘋果教程教程 > 詳細(xì)頁面

        詳細(xì)說明mpvue完成對蘋果X安全區(qū)域的適配_vue.js

        詳細(xì)說明mpvue完成對蘋果X安全區(qū)域的適配_vue.js

        更新時間:2024-04-12 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

        導(dǎo)一、業(yè)務(wù)背景最近在利用mpvue+ts開發(fā)小程序的過程中,由于蘋果X等手機(jī)會出現(xiàn)底部的按鈕,會遮蓋掉需要操作的按鈕。由于在小程序開發(fā),微信爸爸已經(jīng)做了對機(jī)型的檢查,相對與H5的處理來說方便很多了。下...

        一、業(yè)務(wù)背景

        最近在利用mpvue+ts開發(fā)小程序的過程中,由于蘋果X等手機(jī)會出現(xiàn)底部的按鈕,會遮蓋掉需要操作的按鈕。由于在小程序開發(fā),微信爸爸已經(jīng)做了對機(jī)型的檢查,相對與H5的處理來說方便很多了。下面就稍微羅列一下解決方案。

        二、實(shí)現(xiàn)思路

        1. 判斷機(jī)型方法
        2. 注入全局組件mixin
        3. 加入全局安全距離css
        4. 頁面上進(jìn)行class類處理

        三、實(shí)現(xiàn)過程

        1、判斷機(jī)型方法

        小程序的官方文檔提供了一個方法wx.getSystemInfo,我們可以利用該方法來對小程序的對應(yīng)的手機(jī)型號進(jìn)行判斷,是否需要加上安全距離。在工具類文件新建safe-area.js文件,編寫下面代碼,這里返回一個Project,方便取值。

        let cache = null;
        export default function getSafeArea() {
          return new Promise((resolve, reject) => {
            if (cache != null) {
            // 如果有緩存不行行調(diào)用
              resolve(cache);
            }
            else {
            // 獲取系統(tǒng)信息
              wx.getSystemInfo({
                success: ({ model, screenHeight, statusBarHeight }) => {
                  const iphoneX = /iphone x/i.test(model);
                  const iphoneNew = /iPhone11/i.test(model) && screenHeight === 812;
                  cache = {
                    isIPhoneX: iphoneX || iphoneNew,
                    statusBarHeight
                  };
                  resolve(cache);
                },
                fail: reject
              });
            }
          });
        }
        

        2、注入全局組件mixin

        因?yàn)閙pvue是具有mixin這個屬性的,我們可以利用混入安全距離的處理方法。用法基本跟vue一致。新建mixins.js,注入插件,在這個過程中需要注意一點(diǎn),就是如果不進(jìn)行頁面類型的判斷,會出現(xiàn)如果引用組件也會進(jìn)行注入該方法。所以需要加入進(jìn)行判斷

         Vue.prototype.$isPage = function isPage() {
          return this.$mp && this.$mp.mpType === 'page'
         }

        在mounted過程中進(jìn)行處理,可以避免不必要的注入。

        import getSafeArea from '../utils/safe-area'
        let MyPlugin = {};
        MyPlugin.install = function (Vue) {
         // 添加全局方法或?qū)傩?
         Vue.prototype.$isPage = function isPage() {
          return this.$mp && this.$mp.mpType === 'page'
         }
         // 注入組件
         Vue.mixin({
          data() {
           return {
            isIPhoneX: this.isIPhoneX,
           }
          },
          mounted() {
           if (this.$isPage()) {
            getSafeArea().then(({ isIPhoneX, statusBarHeight }) => {
             this.isIPhoneX = isIPhoneX
            });
           }
          }
         })
        }
        export default MyPlugin
        

        在main.js中注冊該插件

        import MyPlugin from './minxins'
        Vue.use(MyPlugin)
        

        3、加入全局安全距離css

        為了我們不需要在每一個文件進(jìn)行樣式的聲明,我們可以在全局樣式中寫入安全距離的類

        .safeArea {
         padding-bottom: 34px!important;
        }

        4、頁面上進(jìn)行class類處理

        處理完以上部分我們可以對頁面上需要處理的區(qū)域,加入:class="{safeArea: isIPhoneX}"進(jìn)行修改,例如:

          <div class="handle" :class="{safeArea: isIPhoneX}">
           <div class="home" @click="goHome"></div>
           <div class="submit" @click="buy">立即購買</div>
          </div>
        
        

        以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持本站。

        您可能感興趣的文章:
        • 詳解基于mpvue的小程序markdown適配解決方案


        溫馨提示:喜歡本站的話,請收藏一下本站!

        本類教程下載

        系統(tǒng)下載排行

        主站蜘蛛池模板: 又色又污又黄无遮挡的免费视| 在线天堂免费观看.WWW| 亚洲欧洲国产成人精品| 免费人成在线观看网站视频| 2020因为爱你带字幕免费观看全集 | 免费大黄网站在线观看| 久久国产精品成人片免费| 国产免费伦精品一区二区三区 | 国产jizzjizz视频免费看| 久久国产免费一区| 久久久久亚洲AV成人片| 成人毛片免费观看视频| 精品国产成人亚洲午夜福利| 91香蕉视频免费| 91成人免费福利网站在线| 亚洲欧洲日产国码无码久久99 | 亚洲第一成年人网站| 成年人网站免费视频| AAAAA级少妇高潮大片免费看| 亚洲人成网站免费播放| 欧洲乱码伦视频免费| 1024免费福利永久观看网站| 国产啪精品视频网站免费尤物| 久久久久久av无码免费看大片| 国产亚洲精品美女| 亚洲黄色在线播放| 亚洲综合激情九月婷婷| 中文字幕亚洲情99在线| 国产精品亚洲va在线观看| 无码天堂亚洲国产AV| 国产一二三四区乱码免费| 婷婷国产偷v国产偷v亚洲| 美女羞羞喷液视频免费| 两个人日本免费完整版在线观看1| 毛片在线全部免费观看| 亚洲综合av一区二区三区| 亚洲国产精品网站在线播放| 成人毛片100免费观看| 成人福利免费视频| 国产精品亚洲综合专区片高清久久久 | 蜜臀98精品国产免费观看|