分享代码
/**
* 用户点击右上角分享
*/
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)
}
}