微信小程序填坑手冊(持續(xù)更新中)

--《坑坑更健康》系列

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ā)者。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容