微信小程序那点事儿(必看&踩坑&实用&解决BUG)------持续更新(2)

目录

  • wx.getSystemInfo(Object object) & Object wx.getSystemInfoSync()
  • onShareAppMessage 分享
  • setNavigationBarColor 不起作用?
  • 小程序中如何清除持久化数据

wx.getSystemInfo(Object object) & Object wx.getSystemInfoSync()

我们可以根据上边两个API获取系统信息
e.g.
pixelRatio(设备像素比)
screenWidth(屏幕宽度)
locationAuthorized(允许微信使用定位的开关)
bluetoothEnabled(蓝牙的系统开关)
locationEnabled(地理位置的系统开关)
wifiEnabled(wifiEnabled)
但是这两个方法有个共同的问题是 在真机调试的情况下,不能实时更新返回的信息
e.g.
点击按钮 获取 手机地理位置的系统开关 来判断是否提示用户打开GPS 如果在真机调试的情况下 手动打开关闭手机中的位置开关 点击按钮得到的结果并不会根据手机的状态进行更新 则不能达到你想要的效果,此时可以直接预览 打开调试 进行测试即可

onShareAppMessage 分享

小程序中可以借用这个原生方法实现将内容分享到微信群或者个人的功能
该方法监听了用户点击页面内转发按钮(button 组件 open-type=“share”)或右上角菜单“转发”按钮的行为,并自定义转发内容

字段 说明 默认值
title 转发标题 当前小程序名称
path 转发路径 当前页面 path ,必须是以 / 开头的完整路径
imageUrl 自定义图片路径,可以是本地文件路径、代码包文件路径或者网络图片路径。支持PNG及JPG。显示图片长宽比是 5:4 使用默认截图

值得注意的是:
为了美观以及传播的效果 我们通常不会使用默认截图,有些会使用自定义图片,这时候添加自定义的url即可
但是很多时候我们希望达到更好的效果,需要动态生成该图片,图片上显示页面中的一些数据和内容,
这时候就需要我们在小程序里边拿到数据之后去动态生成图片
这时候就需要

wx.createCanvasContext
绘制Canvas

wx.canvasToTempFilePath
把当前画布指定区域的内容导出生成指定大小的图片。在 draw() 回调里调用该方法才能保证图片导出成功

获取图片信息。网络图片需先配置download域名才能生效

wx.getImageInfo(Object object)

需要此接口是因为CanvasContext.drawImage
也就是所要绘制的图片资源(假如是网络图片要通过 getImageInfo / downloadFile 先下载)

一定要注意!!
onShareAppMessage是个同步方法,在异步回调里返回分享信息是获取不到的,
也就是说你需要在点击分享之前就把你需要的数据和图片 获取/生成 完毕 才能return出去~
之后我会单独开一篇文章专门细讲一下小程序如何动态生成图片作为分享的封面图,敬请期待,现在有问题的小伙伴请在此评论哈~

setNavigationBarColor 不起作用?

这里应该是小程序文档不健全的问题
setNavigationBarColor 中backgroundColor参数的有效值为十六进制颜色
并且应该为小写!!!!!!

小程序中如何清除持久化数据

我们经常会用到wx.setStorageSync()或者wx.setStorage去处理持久化数据
需要清除数据的时候我们就要注意啦!!
小程序中清除持久化数据有两个API

wx.removeStorage(Object object)
从本地缓存中移除指定 key

wx.clearStorage(Object object)
清理本地数据缓存
我自己就是有一次误用了clearStorage 将本地所有的持久化数据都清除了 所以要注意咯!

你可能感兴趣的:(前端,ES6,微信小程序,微信小程序,小程序坑,小程序API,小程序canvas)