uniapp实现H5对PC的适配

时间:2025-01-22 07:12:01

前言:

使用uniapp做的h5页面,在PC端显示时,发现由于rpx单位计算基准值太大,导致页面排版布局错乱

思路:

刚开始发现使用px单位不会导致页面布局混乱,但这对刚开启的项目友好,对已经成型的项目修改成本太高,风险也大,而且px是固定单位,在移动端显然没rpx好使;

今天去官方社区逛了一圈,发现有大神已经提出PC端适配方案了,就几句代码就OK了,突然发现我真是蠢啊,┭┮﹏┭┮

新建一个,随便找个地方放着,内部代码如下(变量sw值的设置,你们觉得怎么好看怎么来吧,下面的是我根据我的感觉设置的,适配到8K屏幕了):

(function (){
 var u = ,
  w = ;
 if (!(/AppleWebKit.*Mobile.*/) || ('iPad') > -1) {
  var sw = w*576/1920;
   = sw<375?375:sw;
                 = function() {
           = w;
         }
 }
})();

然后再里面引入

注意,一定要在App实例引入前引入,不然无效!!!

1

2

3

import '@/static/js/pc'

import Vue from 'vue'

import App from './App'

这样做的好处是刷新页面时,页面之前的栈还在,不会像用iframe那样刷新后就回到首页;


修改成下面这样, PC端样式就可以实现1upx = 1rpx = 1px;这样非常方便的1:1还原设计图了

当然如果你的设计图不是1920,比如是1366,那下面就改成这样 = 750*(w / 1366);

(function (){
 var u = ,
  w = ;
 if (!(/AppleWebKit.*Mobile.*/) || ('iPad') > -1) {
   = 750*(w / 1920);
   = function() {
    = w;
  }
 }
})();

tabbar的适配可以通过下面这种方式来进行进行

html, body, .uni-tabbar, .uni-page-head {
	max-width: 1000 rpx;
	background-color: white;
	margin: 0 auto;
}

以上内容就是uniapp对H5的PC端兼容方法,并且不会影响微信小程序和H5的移动端

欢迎大家关注我的公众号「踏浪而行生活圈」,这里不仅有更多好玩的内容,还会同步更新 踏浪而行 最新资讯,让你时刻掌握科技前沿,快来加入我们吧!