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