UNI-APP之微信小程序转H5
开始
最近有个需求,需要将微信小程序中一些页面和功能改成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
- 直接全局安装
npm install miniprogram-to-uniapp - g
- 因为工具更新的比较频繁,所以安装后建议更新
npm update miniprogram-to-uniapp -g
- 转换微信小程序项目,顺带将wx.xx转为uni.xxx。具体可以查看文档
wtu -i 'E:\project\miniprogram-project' -r
- 转换成功后,会在项目同级目录下生成一个miniprogram-project_uni的目录
转换后的一些问题
- 小程序的bingtap会转成@tap,问题不大,不过最好改成@click。
- 组件上的动态props参数没有通过v-bind绑定
- 小程序的自定义组件,props是可以在子组件内修改的, 但是转成uni-app是不能直接在子组件修改props。
- 子组件内,工具转换后的this.setData的兼容方法,更新值的时候不会触发watch,要把this.setData改回vue的this.xxx=xxx;
- @catchtouchmove的防止触摸穿透,可以改成@touchmove.stop.prevent=“moveHandle”
- hidden="hidden"改成v-show
- 图片的路径在转换中可能也会出错
- 本地调试时调用接口会出现跨域。可以在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打包部署的问题
h5打包之前,需要在manifest.json文件的h5配置中配置相关规则:

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

因为我需要在微信浏览器打开,路径使用hash模式会带有#号,获取wx.config会失败,所以改成history的模式。
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的路由管理方式,具体可以查看文档,文档写的蛮详细的
分享就先到这里,可以会有些错误,欢迎指正。后续会继续更新在项目中遇到的问题,谢谢
UNI-APP之微信小程序转H5的更多相关文章
- 用 React 编写的基于Taro + Dva构建的适配不同端(微信小程序、H5、React-Native 等)的时装衣橱
前言 Taro 是一套遵循 React 语法规范的 多端开发 解决方案.现如今市面上端的形态多种多样,Web.React-Native.微信小程序等各种端大行其道,当业务要求同时在不同的端都要求有所表 ...
- 从0到1构建适配不同端(微信小程序、H5、React-Native 等)的taro + dva应用
从0到1构建适配不同端(微信小程序.H5.React-Native 等)的taro + dva应用 写在前面 Taro 是一套遵循 React 语法规范的 多端开发 解决方案.现如今市面上端的形态多种 ...
- 承接微信小程序外包 H5外包就找北京动点软件开发团队
承接小程序外包 微信小程序外包 H5外包 就找北京动点软件 长年承接微信小程序.微信公众号开发 全职的H5开发团队,开发过几十款微信小程序公众号案例 欢迎来电咨询,索取案例! QQ:372900288 ...
- 承接小程序外包 微信小程序外包 H5外包 就找北京动点软件
承接小程序外包 微信小程序外包 H5外包 就找北京动点软件 长年承接微信小程序.微信公众号开发 全职的H5开发团队,开发过几十款微信小程序公众号案例 欢迎来电咨询 QQ:372900288 微信:li ...
- 如何开发一款堪比APP的微信小程序(腾讯内部团队分享)
一夜之间,微信小程序刷爆了行业网站和朋友圈,小程序真的能如张小龙所说让用户"即用即走"吗? 其功能能和动辄几十兆安装文件的APP相比吗? 开发小程序,是不是意味着移动应用开发的一次 ...
- 用微信小程序做H5游戏尝试
微信小程序发布后,公司虽然没有拿到第一批内测资格,但作为微信亲密合作伙伴,一定要第一时间去尝试啦.现在微信小程序刚发布还在测试阶段,可以说是1.0版本,所以框架和结构内容都还不多,相关的文档跟微信AP ...
- 深入分析:微信小程序与H5的区别
作为前端工程师,从前端的视角,为大家分析下微信小程序和HTML5与之间的主要区别 第一条是运行环境的不同. 传统的HTML5的运行环境是浏览器,包括webview,而微信小程序的运行环境并非完整的浏览 ...
- 微信小程序与H5数据传递
这的场景是 小程序webview 加载 H5应用 需求点: 1. 小程序的登录code 需要与H5应用的sessionId建立绑定关系 2.H5内发起微信小程序支付,支付参数传递到小程序,支付结果传递 ...
- uniapp保存图片到本地(APP和微信小程序端)
uniapp实现app端和微信小程序端图片保存到本地,其它平台未测过,原理类似. 微信小程序端主要是权限需要使用button的开放能力来反复调起,代码如下: 首先是条件编译两个平台的按钮组件: < ...
- 自家APP打开微信小程序,可行吗?
小程序的通用解决方案,今天为大家介绍一下FinClip.它的最大特点,就是能够让任何 App 运行小程序. 只需要在你的 App 里面,引入它的 SDK,就能加载运行外部小程序了.除了 SDK,它还提 ...
随机推荐
- nginx-http反向代理与负载均衡
前言 反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源.同时,用户不需要知道目标服务器的地址,也无须在 ...
- Linux学习疑惑总结
重定向问题 Linux shell 中 2>&1 的含义 首先了解下1和2在Linux中代表什么,先整理一份在Linux系统中0 1 2是一个文件描述符: 名称 代码 操作符 Java中 ...
- 获取API接口返回的商品详情数据后该如何使用
获取API接口返回的商品详情数据后,我们可以使用以下方式将其处理和利用: 数据展示:我们可以将API接口返回的商品详情数据以列表.表格.图形等形式展示给用户,以便他们更好地了解商品的基本信息.特征.评 ...
- 2023-09-01:用go语言编写。给出两个长度均为n的数组, A = { a1, a2, ... ,an }, B = { b1, b2, ... ,bn }。 你需要求出其有多少个区间[L,R]
2023-09-01:用go语言编写.给出两个长度均为n的数组, A = { a1, a2, ... ,an }, B = { b1, b2, ... ,bn }. 你需要求出其有多少个区间[L,R] ...
- 拯救“消失的她”——双系统grub完美恢复方案
双系统grub意外消失怎么办? 不用重装系统.不用去维修店.不会丢数据,教你一招,完美恢复grub! 背景 我的电脑是windows和linux双系统,启动项使用的grub.某天准备切换linux时突 ...
- 深入理解HTTP的基础知识:请求-响应过程解析
首先,我们从网络协议的最顶层开始讲解,即应用层.在网络通信中,应用层是最接近用户的一层,它负责为特定的网络应用提供服务和功能.应用层协议定义了数据交换的规则和格式,以便不同的应用程序能够相互通信和交换 ...
- SpringBootAdmin_监控
监控的意义 监控服务状态是否宕机 监控服务运行指标(内存.虚拟机.线程.请求等) 监控日志 管理服务(服务下线) 监控的实施方式 大部分监控平台都是主动拉取监控信息,而不是被动地等待应用程序传递信息 ...
- oracle 验证流水存在性火箭试优化
在生产中经常遇到"select * from tbl_IsExist where date=?"的SQL,经与开发人员沟通得知此SQL是验证流水存在性,若不存在则插入,若存在退出 ...
- 其它——Redis与Mysql双写一致性方案解析
文章目录 一 前言 二 一致性方案 三 先更新数据库,再更新缓存 四 先删缓存,再更新数据库 五 先更新数据库,再删缓存 一 前言 首先,缓存由于其高并发和高性能的特性,已经在项目中被广泛使用.在读取 ...
- 形象描绘TCP三次握手和四次挥手
一.TCP三次握手TCP 三次握手就好比两个人在街上隔着50米看见了对方,但是因为雾霾等原因不能100%确认,所以要通过招手的方式相互确定对方是否认识自己.形象描绘TCP三次握手和四次挥手 张三首先向 ...