--《坑坑更健康》系列
1.網(wǎng)絡(luò)請(qǐng)求接口提示不在合法域名中,或真機(jī)調(diào)試接口數(shù)據(jù)不正常。
(1)開(kāi)發(fā)工具-詳情-本地設(shè)置,選中“不校驗(yàn)合法域名、web-view(業(yè)務(wù)域名)、TLS版本以及HTTPS證書”;
(2)真機(jī)調(diào)試時(shí),點(diǎn)擊小程序右上角…,點(diǎn)擊“打開(kāi)調(diào)試”;
(3)使用合法域名,則在微信公眾平臺(tái),開(kāi)發(fā)設(shè)置,服務(wù)器和業(yè)務(wù)域名下面配置;
2.日期格式化后安卓iOS系統(tǒng)下時(shí)間轉(zhuǎn)化不兼容的問(wèn)題;
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.真機(jī)調(diào)試,map地圖上面的視圖顯示不出來(lái)的問(wèn)題;
在原生組件map, video,canavs,camera,live-player,live-pusher中只支持嵌套cover-view,cover-image,可在cover-view中使用button。
4.小程序包大小超過(guò)2M,無(wú)法打包上傳;
通過(guò)分包解決小程序包大小限制的問(wèn)題。主包可容納2M以內(nèi)的大小,每個(gè)分包也可容納2M以內(nèi)的大小,單個(gè)文件支持最大500k,但是總?cè)萘坎荒艹^(guò)8M。
//在app.json文件里面,將分包的路徑寫在subPackages中
"subPackages": [{
"root": "pages/pathName/",
"pages": [
"pages/child/main",
]
},{
"root": "pages/pathName/",
"pages": [
"pages/child/main",
]}],
//分包的預(yù)加載
"preloadRule": {
"pages/home/main": {
"network": "all",
"packages": ["pages/pathName/"]
},
"pages/mine/main": {
"network": "all",
"packages": ["pages/pathName/"]
}
}
5.分包里面的地圖marker圖片無(wú)法顯示和marker偏移的問(wèn)題;
1.分包里面,地圖上面的圖片資源需要放置在主包外面的文件比如static,不然無(wú)法訪問(wèn)到圖片資源;
2.另外marker偏移可以通過(guò)anchor:{x:0.5,y:0.5}糾正
var maker = {
iconPath: "/static/map/icon_pin@3x.png",
id: 0,
alpha: 1,
latitude: '22.831629',
longitude: '115.010124',
width: 18,
height: 18,
anchor: { x: 0.5, y: 0.5 },
}
6.wx.getStorageSync()緩存無(wú)法清除;
(1)通過(guò)代碼清除:wx.clearStorage()
(2)真機(jī)打開(kāi)調(diào)試,點(diǎn)擊Wechat,點(diǎn)擊wx.clearStorage() 即可清除;
/清除緩存*/
wx.clearStorage()
7.mpvue主包內(nèi)存太大的時(shí)候,打包會(huì)提示vendor.js過(guò)大,在版本下運(yùn)行會(huì)有風(fēng)險(xiǎn)。
解決辦法:引入U(xiǎn)glifyJs插件對(duì)文件進(jìn)行壓縮
//1.安裝
cnpm install --save UglifyJs
//2.修改build目錄下 的webpack.dev.conf.js配置文件,前面添加插件的引入
var UglifyJsPlugin = require('uglifyjs-webpack-plugin')
//3.在插件列表最后加上一行代碼
new UglifyJsPlugin({ sourceMap: true })
值得注意的是,當(dāng)加入代碼壓縮后,調(diào)試的debugger會(huì)失效(大坑),所以在開(kāi)發(fā)階段,可以將最后那行代碼先注釋。
8.更新版本后內(nèi)容無(wú)法馬上更新問(wèn)題,需要在app.vue的onLaunch(){}里面做一個(gè)提示更新的功能。
onLaunch(){
if (wx.canIUse('getUpdateManager')) {
const updateManager = wx.getUpdateManager()
updateManager.onCheckForUpdate(function (res) {
// 請(qǐng)求完新版本信息的回調(diào)
if (res.hasUpdate) {
updateManager.onUpdateReady(function () {
wx.showModal({
title: '更新提示',
content: '新版本已經(jīng)準(zhǔn)備好,是否重啟應(yīng)用?',
success: function (res) {
if (res.confirm) {
// 新的版本已經(jīng)下載好,調(diào)用 applyUpdate 應(yīng)用新版本并重啟
updateManager.applyUpdate()
}
}
})
})
updateManager.onUpdateFailed(function () {
// 新的版本下載失敗
wx.showModal({
title: '已經(jīng)有新版本了喲~',
content: '新版本已經(jīng)上線啦~,請(qǐng)您刪除當(dāng)前小程序,重新搜索打開(kāi)喲~',
})
})
}
})
} else {
// 如果希望用戶在最新版本的客戶端上體驗(yàn)?zāi)男〕绦?,可以這樣子提示
wx.showModal({
title: '提示',
content: '當(dāng)前微信版本過(guò)低,無(wú)法使用該功能,請(qǐng)升級(jí)到最新微信版本后重試。'
})
}
}
暫時(shí)先更這么多,微信小程序的限制比較多,還很多api有待微信開(kāi)發(fā)團(tuán)隊(duì)開(kāi)放,希望后面會(huì)有更多開(kāi)放的資源支持到開(kāi)發(fā)者。