微信小程序开发

微信小程序之十:分享

2018-11-21  本文已影响9人  ZIM东东

分享代码

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function(res) {
    let that = this;
    if (res.from === 'button') {
      console.log(res.target)
    }
    return {
      title: '',
      imageUrl: '',
      path: '/pages/index/index',
      success: function(res) {
        console.log("转发成功");
        shareAppMessage: ok;
        wx.showShareMenu({
          withShareTicket: true
        });
      },
      fail: function(res) {
        console.log("转发失败");
      }
    }
  },

分享注意事项

1. 分享转发:不自定义转发图片的情况下,
默认会取当前页面,从顶部开始,高度为 80% 屏幕宽度的图像作为转发图片。
测试scrollView iOS从scrollView顶部开始截图,Android是截屏有差异

2. 设置的imageUrls 地址中不能有中文

3. 小程序里绘制页面,和网络请求处理结是异步处理,
所以当点击分享时,请求接口,返回数据之后去转发是行不通的,
要在转发前就准备好要转发的内容;

分享小程序二维码开发流程

二维码调用的接口,请阅读 ‘微信小程序之九:二维码’

获取小程序码的业务:建议在自己服务器上处理,小程序端不做处理

注意:为什么不在小程序端做处理?
1. access_token的有效期等问题
2. 调用接口B,获取小程序二维码,接口返回的是二进制流
3. 加载二进制小程序码的图片,需要转base64 在image组件中可以显示
4. 小程序canvas画布不支持绘制base64图片,模拟器可以,真机不行
5. 参数字段scene,带参数最大32个可见字符

如何解决带参数最大32个可见字符?
1. 服务端要出这样一个接口:请求生成二维码的接口
2. 服务端接收小程序端传来的生成二维码的参数
3. 服务端将小程序端传来的参数scene存数据库(因为大于32字符)生成对应的id用于生成二维码
4. 小程序端扫码进入程序的时候,可以获取参数id
5. 小程序端用id请求服务端获取当初要编辑在二维码里的真正参数

微信扫码,扫描带参二维码
进入小程序指定的页面中需要接收场景值scene

onLoad: function(options) {
 if (options.scene) {
    // options 中的 scene 需要使用 decodeURIComponent 才能获取到生成二维码时传入的 scene
    var scene = decodeURIComponent(options.scene)
    console.log('打印参数scene--->' + scene)
  }
}

全部文章地址:www.freefook.com

上一篇 下一篇

猜你喜欢

热点阅读