遇到的兼容性问题,主要是uniapp,后续补充中
1.时间戳转化
安卓机型识别时间 可以是2022-2-22 11:23:22 ,也可以是2022/11/22 11:22:33
ios识别时间只能是2022/11/22 11:22:3,3否则会解析时间时得到NAN,得不到时间戳,得到null
let arriveTime=2022-2-22 11:23:22
arriveTime = arriveTime.replace(/-/g, '/')
2.微信小程序调用api设置底部tabbar,如果图片路径不存在,预览时将会卡死小程序
3.wx.setNavigationBarTitle
当有两个tabbar页面,A和B,每个页面都请求五六个接口,并将网速降低时,
如果设置页面标题是根据接口返回值来进行动态设置的,如果这时候快速切换tabbar栏,
而接口在离开当前页面时还在请求还没有返回数据,将会导致在A页面根据接口动态设置页面的标题的api作用在B页面上
4.uniapp开发APP时,样式错乱,但是其他端不会出现问题
原因:如果template的标签中使用的是某个对象里面的对象的数组,如a.b.c,数据从后端接口获取,但是前端只是定义了一个a对象,就会出错,需要改为定义如下结构
export default {
data() {
return {
a:{
b:{
c:[]
}
}
}
},
}
5.uniapp 打包优化问题
如果某个分包导入了一个sdk,但是会导致编译到小程序的vendor.js体积过大 解决方法
步骤1:
//需要在manifest.json中找到小程序端的源码试图,添加,optimization中的分包名字必须是subPackages,否则无效
//"optimization" : {
// "subPackages" : true
// },
步骤2:
主包中有一个页面a,分包中subPackages有个页面b,b中引入了体积很大的sdk,如果直接从a跳转b,
则sdk会被打包 进入vendor.js,上述操作失效,体积过大
但是如果搞一个中间页面作为中间跳转页面就可以解决,在另一个分包pubPackages中定义一个页面c,a先跳转c
,再跳转b,体积过大问题就可以解决,核心就是sdk不要被主包直接引用
"mp-weixin" : {
"appid" : "wx518ed62534515f4a",
"setting" : {
"urlCheck" : true,
"minified" : true,
"es6" : true,
"postcss" : true
},
"usingComponents" : true,
"permission" : {
"scope.userLocation" : {
"desc" : "你的位置信息将用于小程序位置接口的效果展示"
}
},
"optimization" : {
"subPackages" : true
},
"requiredPrivateInfos" : [ "getLocation", "chooseAddress", "chooseLocation" ]
},
uniapp 绑定click事件bug
//如下showTime事件是可以触发的
<text @click="showTime">
<text>1</text>
<text>2</text>
</text>
//如下showTime事件不可以触发的,修改方法,将最外层的text标签改为view标签
<text >
<text>1</text>
<text @click="showTime">2</text>
</text>
uniapp组件切换导致样式全部出错,并且无请求
//错误提示
# cid unmatched [object Object] at view.umd.min.js:1 TypeError: Invalid attempt to destructure non-ite
//解决方法
1.判断循环的数组是否为数组
2.组件切换隐藏时不要使用v-show,使用v-if
uniapp自定义表单使用uview组件的单选组件和复选框导致数据setdata过大,小程序卡死
解决方法,不要使用v-model,使用uniapp自带的组件,setData是根据回调来决定是否继续setData,不要一次性更新数据
配置flutter
//修改flutter下载源
PS D:\flutter\flutter_application_2> $env:PUB_HOSTED_URL="https://pub.flutter-io.cn"
PS D:\flutter\flutter_application_2> $env:FLUTTER_STORAGE_BASE_URL="https://storage.flutter-io.cn"
//修改flutter的Android Studio配置
flutter config --android-studio-dir="D:\software\Android Studio"
flutter config --android-sdk="D:\software\android-studio\androidsdk"