Web App,顾名思义是指基于Web的应用,基本采用Html5语言写出,不需要下载安装。类似于现在所说的轻应用。基于浏览器运行的应用,基本上可以说是触屏版的网页应用。

一个web app如何拔地而起:需要用到的技术有Vue全家桶,H5。这三样我觉得是最重要的,其他的还包括js那些等等技术。

构建一个web APP 大致流程是:

  • vue脚手架搭建好项目框架(vue-cli3.0搭建)
vue create 项目名称

在创建过程中会遇到很多的选择项,选择注释见vue3.0创建项目选择项注释 创建好之后就可以配置相关包,初步搭建项目的框架。

!!!一般vue3.0创建的是没有配置文件的需要自己创建一个vue.config.js的文件

vue项目H5项目中ios12系统兼容性问题 vue h5 app_移动端

  • 选择好自己需要的ui框架
    (现在有很多移动端的ui框架,我用过的是vant-uihttps://youzan.github.io/vant/#/zh-CN/)
yarn add vant
//在main.js文件里添加如下

import Vant from 'vant';
import 'vant/lib/index.css';

Vue.use(Vant);
  • 还需要引入一个初始化样式文件,这种文件网上很多,根据自己所需要得引入(在main.js中引入)
  • vue项目H5项目中ios12系统兼容性问题 vue h5 app_移动端_02

  • 个人觉得最重要的是移动端的单位像素适配和1像素边框的问题
    (移动适配问题网上也有很多大神写的文章,但是自己到目前为止还是云里雾里。这篇文章算比较综合的解决方案了

到目前为止我使用了两种方式:
第一种:(避免ui组件的单位也被转换单位的方式)

安装相关ostcss-px2rem-exclude,lib-flexible包
yarn add postcss-px2rem-exclude -D
yarn add lib-flexible

在main.js中引入
import ‘lib-flexible’//移动端适配

在修改postcss-px2rem-exclude 源码
/node_modules/postcss-px2rem-exclude/lib/index.js 文件 增加如下内容,即可

//还有一种方法,是避免ui组件的单位也被转换单位的方式

try{
      var flag = options.exclude.includes('/')
      if(flag){
        var arr =options.exclude.split('/')
        options.exclude = new RegExp(arr[1],arr[2])
      }
    }catch(err){

    }

vue项目H5项目中ios12系统兼容性问题 vue h5 app_html_03


!!!该方法的链接

第二种配置方式:

安装lib-flexible,postcss-pxtorem包
yarn add lib-flexible
yarn add postcss-pxtorem

在main.js中引入
import ‘lib-flexible’//移动端适配

在public/index.html中修改:
注意事项(important): 由于flexible会动态给页面header中添加标签,所以务必请把目录 public/index.html 中的这个标签删除!!

将 <meta name=“viewport” content="width=device-width,initial-scale=1.0"这个删除

在postcss.config.js中配置:

module.exports = {
    plugins: {
      'postcss-pxtorem': {
        rootValue:37.5,
        propList: ['*']
      }
    }
}

vue项目H5项目中ios12系统兼容性问题 vue h5 app_web app_04


注意:在写样式时需要将值改为设计图的一半

配置好以后需要重启

(该问题还需要的实际项目中多加练习配置)

  • 接着就是各种逻辑代码的编写了,app编写肯定就少不了调用手机的各种功能那么就是看H5API文档了http://www.html5plus.org/doc/h5p.html个人觉得一些比较重要的配置点:
  • 配置router.js路由文件(重点就是做登录逻辑判断----路由守卫)

  • 配置全局请求的路径
  • vue项目H5项目中ios12系统兼容性问题 vue h5 app_web app_05

  • 配置全局组件(组件在很多地方使用的时候就可以配置为全局组件)
  • vue项目H5项目中ios12系统兼容性问题 vue h5 app_移动端_06

  • 在main.js中引入
  • vue项目H5项目中ios12系统兼容性问题 vue h5 app_web app_07

  • 最后就是把web页面打包包装成一个app的外壳,就需要使用到Hbuild打包或者HbuildX打包
    (个人建议使用HbuildX把,毕竟技术用最新的好。Hbuild打包,HbuildX打包的文章还在更新中)