UNIAPP之微信小程序转H5

摘要:
最近,有人要求将微信小程序的一些页面和功能改为h5,这一次,功能开发的时间有点紧,写一套新的已经太晚了。考虑到微信小程序与uni app有一些相似之处,我们计划将其直接转换为uni app。github:https://github.com/zhangdaren/miniprogram-to-uniapp课程:https://ask.dcloud.net.cn/article/36037使用MINIPROGRAM-TO-UNIAPP在全球范围内直接安装npminstallminiprogram-TO-UNIAPP-g。由于工具更新频繁,建议在安装后将npmupdateminiprogram更新为-uniapp-g,以转换微信小程序项目并转换wx。xx到uni-xxx组件上的动态props参数不会通过v-bind绑定小程序的自定义组件。道具可以在子组件中修改,但在转换为uni-app时不能在子组件直接修改。
开始

最近有个需求,需要将微信小程序中一些页面和功能改成h5,这次功能开发的时间有点紧,而且重新写一套有点来不及。考虑到微信小程序与uni-app有着一些共通之处,所以打算直接转成uni-app。uni-app官网上也有从微信小程序项目转uni-app的教程:https://github.com/zhangdaren/miniprogram-to-uniapp ,
不过我这里直接用上了大佬开源的miniprogram-to-uniapp转换工具。
github: https://github.com/zhangdaren/miniprogram-to-uniapp
教程:https://ask.dcloud.net.cn/article/36037

使用MINIPROGRAM-TO-UNIAPP

  1. 直接全局安装
npm install miniprogram-to-uniapp - g
  1. 因为工具更新的比较频繁,所以安装后建议更新
npm update miniprogram-to-uniapp -g
  1. 转换微信小程序项目,顺带将wx.xx转为uni.xxx。具体可以查看文档
wtu -i 'E:\project\miniprogram-project' -r
  1. 转换成功后,会在项目同级目录下生成一个miniprogram-project_uni的目录

转换后的一些问题

  1. 小程序的bingtap会转成@tap,问题不大,不过最好改成@click。
  2. 组件上的动态props参数没有通过v-bind绑定
  3. 小程序的自定义组件,props是可以在子组件内修改的, 但是转成uni-app是不能直接在子组件修改props。
  4. 子组件内,工具转换后的this.setData的兼容方法,更新值的时候不会触发watch,要把this.setData改回vue的this.xxx=xxx;
  5. @catchtouchmove的防止触摸穿透,可以改成@touchmove.stop.prevent=“moveHandle”
  6. hidden="hidden"改成v-show
  7. 图片的路径在转换中可能也会出错
  8. 本地调试时调用接口会出现跨域。可以在manifest.json文件源码视图,配置h5的devServer:
"h5": {
    "devServer": {
        "port" : 80,
            "disableHostCheck" : true, // 跳过host检查
            "proxy" : {
                "/api" : {
                    "target" : "https://abc.com",  // 目标域名
                    "changeOrigin" : true,    // 允许跨域
                    "secure" : false,// 设置支持https协议的代理
                    "ws" : false,//没有该配置将出现:WebSocket connection to ws 错误提示
                    "pathRewrite" : {  //如果不希望传递/api,则需要重写路径
                        "^/api" : ""
                    }
                }
            },
    }
}

uni-app也是webpack打包,实际跟vue是差不多的,具体配置可以查阅 webpack-dev-server

H5打包部署的问题

  1. h5打包之前,需要在manifest.json文件的h5配置中配置相关规则:
    在这里插入图片描述

  2. 点击工具栏发行—》h5手机版发行,填入网站标题和域名,接着等发布成功,会在unpackage中生成打包后的文件
    在这里插入图片描述

  3. 因为我需要在微信浏览器打开,路径使用hash模式会带有#号,获取wx.config会失败,所以改成history的模式。

  4. history模式,部署需要后台在nignx配置。另外,页面打开,进入二级页面,刷新的时候会404,需要后台在nignx中配置伪静态,例如:

location / {
  try_files $uri $uri/ /aecGuide/h5/index.html; 
}

使用UNI-SIMPLE-ROUTER

在uni-app中,如果不想用uniapp的路由管理,可以使用这个工具:uni-simple-router,其保留了vue-router的路由风格,可以使用其的API,也可以改成完全使用vue-router的路由管理方式,具体可以查看文档,文档写的蛮详细的

分享就先到这里,可以会有些错误,欢迎指正。后续会继续更新在项目中遇到的问题,谢谢

免责声明:文章转载自《UNIAPP之微信小程序转H5》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇centos7 配置静态ip杯水人生下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

FTP服务器搭建基础工具:Serv-U 14.0.2使用教程

安装教程   1、在本站下载好压缩包,将文件解压,双击运行“ServUSetup官方原版程序.exe”程序,弹出语言选择框,选择“中文(简体)”,点击“确定”开始安装   2、点击“下一步”进行安装  3、等待安装进度完成,点击“完成”结束安装   3、结束安装后,最上方会有购买提示 破解教程   1、安装完成后运行软件,在右下角软件图标处右击,停止...

Nginx https加密以及nginx日志配置与管理

Nginx https加密以及nginx日志配置与管理使用Nginx的优点Nginx作为WEB服务器,Nginx处理静态文件、索引文件、自动索引的效率非常高。Nginx作为代理服务器,Nginx可以实现无缓存的反向代理,提高网站的性能Nginx作为负载均衡服务器,内部可以支持PHP、也可以支持HTTP代理服务器对外进行服务,同时还支持简单的容错和利用算法进...

企业微信的数据打通

前言 当企业使用企业微信营销时,会添加企业的相关公众号、微信小程序等应用,因此企业可以获取客户的unionid,做到数据打通。从而知道客户在企业的公众号、微信小程序中进行了哪些行为,进而可以了解用户的需求,给客户进行精准营销。那么企业是如何获取用户的unionid的呢? 一、如何理解unionid? 我们把每个接入微信的应用(公众号、APP)比作一个独立的...

Windows虚拟器的安装与使用

前言 先说:你们要的东西我会放在文中和文章末尾,拿文件记得点赞,一手交钱一手交货 马上初中朋友们就要开始上网课了哎!(博主也是一位初中生) 有人可能会受网课的影响而不能……, 所以各路神仙研究出了各种方法。 其中一种就是安装虚拟机。(最复杂的办法) 其实虚拟机也不仅仅只有这一点作用,他可以……(自己想) 今天我就来说一下在windows系统下安装与使用虚拟...

系统安装-007 CentOS7yum源添加、删除及其yum优化

一、配置阿里云源为主源mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bakwget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo阿里云官方教程:...

开源文字识别软件tesseract

1.下载4.0软件,下一步下一步到成功; 2.安装之后配置环境变量,Path中添加安装路径(默认:C:Program Files (x86)Tesseract-OCR) 3.新增语言库的环境变量,变量名:TESSDATA_PREFIX,变量值(默认:C:Program Files (x86)Tesseract-OCR essdata) 4.测试软件是否可...