--《坑坑更健康》系列
1.网络请求接口提示不在合法域名中,或真机调试接口数据不正常。
(1)开发工具-详情-本地设置,选中“不校验合法域名、web-view(业务域名)、TLS版本以及HTTPS证书”;
(2)真机调试时,点击小程序右上角…,点击“打开调试”;
(3)使用合法域名,则在微信公众平台,开发设置,服务器和业务域名下面配置;
2.日期格式化后安卓iOS系统下时间转化不兼容的问题;
let data ='2018-08-30 11:00:00';
let myData=new Date(data);
console.log(myData);
let timestamp = myData.getTime();
console.log(myData);//iOS中打印null
//纠正做法
var nowDate = new Date()
var newData = nowDate.replace(/-/g, '/')
var timestamp = new Date(newData);
3.真机调试,map地图上面的视图显示不出来的问题;
在原生组件map, video,canavs,camera,live-player,live-pusher中只支持嵌套cover-view,cover-image,可在cover-view中使用button。
4.小程序包大小超过2M,无法打包上传;
通过分包解决小程序包大小限制的问题。主包可容纳2M以内的大小,每个分包也可容纳2M以内的大小,单个文件支持最大500k,但是总容量不能超过8M。
//在app.json文件里面,将分包的路径写在subPackages中
"subPackages": [{
"root": "pages/pathName/",
"pages": [
"pages/child/main",
]
},{
"root": "pages/pathName/",
"pages": [
"pages/child/main",
]}],
//分包的预加载
"preloadRule": {
"pages/home/main": {
"network": "all",
"packages": ["pages/pathName/"]
},
"pages/mine/main": {
"network": "all",
"packages": ["pages/pathName/"]
}
}
5.分包里面的地图marker图片无法显示和marker偏移的问题;
1.分包里面,地图上面的图片资源需要放置在主包外面的文件比如static,不然无法访问到图片资源;
2.另外marker偏移可以通过anchor:{x:0.5,y:0.5}纠正
var maker = {
iconPath: "/static/map/[email protected]",
id: 0,
alpha: 1,
latitude: '22.831629',
longitude: '115.010124',
width: 18,
height: 18,
anchor: { x: 0.5, y: 0.5 },
}
6.wx.getStorageSync()缓存无法清除;
(1)通过代码清除:wx.clearStorage()
(2)真机打开调试,点击Wechat,点击wx.clearStorage() 即可清除;
/清除缓存*/
wx.clearStorage()
7.mpvue主包内存太大的时候,打包会提示vendor.js过大,在版本下运行会有风险。
解决办法:引入UglifyJs插件对文件进行压缩
//1.安装
cnpm install --save UglifyJs
//2.修改build目录下 的webpack.dev.conf.js配置文件,前面添加插件的引入
var UglifyJsPlugin = require('uglifyjs-webpack-plugin')
//3.在插件列表最后加上一行代码
new UglifyJsPlugin({ sourceMap: true })
值得注意的是,当加入代码压缩后,调试的debugger会失效(大坑),所以在开发阶段,可以将最后那行代码先注释。
8.更新版本后内容无法马上更新问题,需要在app.vue的onLaunch(){}里面做一个提示更新的功能。
onLaunch(){
if (wx.canIUse('getUpdateManager')) {
const updateManager = wx.getUpdateManager()
updateManager.onCheckForUpdate(function (res) {
// 请求完新版本信息的回调
if (res.hasUpdate) {
updateManager.onUpdateReady(function () {
wx.showModal({
title: '更新提示',
content: '新版本已经准备好,是否重启应用?',
success: function (res) {
if (res.confirm) {
// 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
updateManager.applyUpdate()
}
}
})
})
updateManager.onUpdateFailed(function () {
// 新的版本下载失败
wx.showModal({
title: '已经有新版本了哟~',
content: '新版本已经上线啦~,请您删除当前小程序,重新搜索打开哟~',
})
})
}
})
} else {
// 如果希望用户在最新版本的客户端上体验您的小程序,可以这样子提示
wx.showModal({
title: '提示',
content: '当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。'
})
}
}
暂时先更这么多,微信小程序的限制比较多,还很多api有待微信开发团队开放,希望后面会有更多开放的资源支持到开发者。