项目场景:
目前本身就有一套完善的微信小程序(兼容h5)的代码,现在的需求是将它编译成支付宝小程序,做好兼容的处理,以便后续接入支付宝服务商,在这里简单记录一下目前发现的把微信小程序编译成支付宝小程序的问题和解决方案。
文章来源地址https://uudwc.com/A/JeRO
差异记录:
建议配合其他人的记录一起看,这里只是我个人目前发现的差异。
沉浸式导航:
微信小程序返回按钮会消失,而支付宝不消失,且支付宝小程序navigationBarTextStyle不生效
解决方法:只能改变navigationBarBackgroundColor去修改导航栏字体颜色;
文件名:
支付宝文件名或者文件夹名中不允许出现 @ 符号,微信小程序可以
解决方案:别用就是了;
input:
自带白色底色,且当disabled=true时,input内的字体样式会变成placehold的字体样式,自带内边距
解决方案:全局增加透明背景颜色,padding:0,慎用input的disabled;
image标签:
mode可以不写,但不能为空,否则会自动编译为mode="true"(微信小程序可以为空)
解决方案:别写mode="",本来就不规范;
request:
支付宝小程序,只支持HTTP协议里的GET和POST请求,不支持PUT/DELETE请求
解决方法:请求头字段设置X-HTTP-Method-Override;
component:
支付宝小程序组件是作为一个component的标签编译的,组件绑定v-show和外部class会失效,而微信小程序不会,且支付宝标签中的component标签为块元素
解决方案:根据场景进行解决,不使用外部class;
页面跳转:
tabbar 支付宝小程序uni.switchTab中url只能写成'/pages/order/order',而在微信小程序里可以写成相对的路径'pages/order/order',因此统一写为'/pages/order/order'
解决方案:都用支付宝小程序支持的写法,后者本来就不规范;
showToast:
支付宝小程序弹窗时不可进行其他操作,自带mask
解决方案:必要时使用hideToast;
picker:
支付宝不支持picker的多列选择器属性
解决方案:使用picker-view进行替代;
uploadFile:
比其他端上传文件新增了一个fileType参数,必填
解决方案:加上去;
button:
自带白色border
(想不明白)解决方案:全局border:none;
v-show:
尽量避免使用 v-show (大部分情况不起作用或有问题,目前还不清楚具体会失效的情况,待确认)
解决方法: v-if或新增一个display:none的全局事件;
map组件:
地图组件不可动态调整高度,不可在map地图上使用cover-image不生效
解决方案:只能放弃这部分的效果了文章来源:https://uudwc.com/A/JeRO