微信小程序填坑手册(持续更新中)

--《坑坑更健康》系列

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有待微信开发团队开放,希望后面会有更多开放的资源支持到开发者。

你可能感兴趣的:(微信小程序填坑手册(持续更新中))