微信小程序踩坑记录

380 阅读1分钟

showModal

Android手机在onShow内调用 wx.showModal ,如果不关闭弹窗(直接点击右上角退出小程序),弹窗不会销毁,再次进入页面触发onShow时会出现两次弹窗,IOS正常

canvas

绘制图片需传入img对象,需要在图片加载完成后再绘制

image.png

保存图片

  • saveImageToPhotosAlbum传入图片路径| filePath | string | 图片文件路径,可以是临时文件路径或永久文件路径 (本地路径) ,不支持网络路径

  • getImageInfo src:图片的路径,支持网络路径、本地路径、代码包路径 需要配置合法域名

image.png

image.png

image.png

show-menu-by-longpress && previewImage

长按转发图片 && 预览

  <image class="tempImg_img" wx:if="{{isShowTempImg}}" :show-menu-by-longpress="true" src="{{tempImgUrl}}" bind:tap="forwardImg" />
  
  wx.previewImage({
      current: this.data.tempImgUrl, // 当前显示图片的 http 链接
      urls: [this.data.tempImgUrl] // 需要预览的图片 http 链接列表
    })

getLocation

获取地理位置

wx.getLocation({
    type: 'wgs84',
    success(res) {},
    fail(res) {},
})
"permission": {
  "scope.userLocation": {
    "desc": "您的位置信息将用于定位"
  }
}
"requiredPrivateInfos": ["getLocation"]

image.png

引用原文

tip

  • css样式不能引用本地图片资源,只能引用线上资源(background-image),引用本地图片资源只能用<image>标签。

  • {{}}不能执行函数方法,{{}}只支持基本的简单运算和ES6拓展运算符。如价格格式化这种常用的处理,只能在js代码中处理好然后再模板中渲染。

  • 通过wxs模块解决{{}}中不能执行函数的问题。

<image class="item_left_img" src="{{ weaTools.choose_weatherImg(item.dayweather) }}" />
<view>
   <view>{{weaTools.my_slice(item.date)}}</view>
   <view>{{item.dayweather}}</view>
</view>

image.png

  • 静态资源路径不能有汉字
  • setDate
// data
data: {
    name: '123',
    info: { height: 140, color: '黄色' }
}
//  info 的其他属性会丢失
this.setData({ info: { height: 155 } })

// 需要取出 info 对象,修改后整个 setData
const { info } = this.data
info.height = 155
this.setData({ info })

wx-updata

为什么放弃 setData,使用 upData