目录

微信小程序分享朋友圈API限制问题

目录

微信小程序分享朋友圈API限制问题

在开发微信小程序过程中,需要实现将小程序分享到朋友圈,以扩大宣传范围,吸引流量。

实现也不难,满足【两个条件】即可:

  • 首先,页面需设置允许“发送给朋友”。具体参考 Page.onShareAppMessage 接口文档
  • 满足条件 1 后,页面需设置允许“分享到朋友圈”,同时可自定义标题、分享图等。具体参考 Page.onShareTimeline 接口文档

满足上述两个条件的页面,可被分享到朋友圈(在微信小程序中点击右上角【…】)。

实现则是在Page中定义onShareTimeline()此事件处理函数,点击右上角【…】菜单后弹出层才会显示【分享到朋友圈】按钮,如下图(『分享到朋友圈』是彩色高亮状态):

https://i-blog.csdnimg.cn/blog_migrate/27943998de64606100e3f5e40ea53f69.png

不过需要注意的是微信小程序是从基础库 2.11.3 才开始支持的。详细可参考微信平台官方文档说明:https://developers.weixin.qq.com/miniprogram/dev/reference/api`/Page.html#onShareTimeline

支持自定义分享内容,参考代码片断如下:

onShareTimeline() {

    return {
      title: '欢迎打开我的微信小程序【废话文学间】'
      imageUrl: '', // 可自定义图片,若图片URL为空则默认取小程序Logo
      query: 'id=1'
    };

}

参数解释:

https://i-blog.csdnimg.cn/blog_migrate/de7558138916af76299e31a3c313397e.png

但是,由于用户在朋友圈中打开分享后,小程序呈现的是【单页模式】,在这个模式下,一些组件或 API 接口存在一定限制,详情见下文【单页模式下的限制】章节。

除了这些以上明文规定的限制,还有当 query 传参内容过多过长 时,也是无法分享到朋友圈的。

而当【query】参数中含有 中文和其他特殊字符 时,还需进行 URL 编码,代码片断参考如下:

onShareTimeline() {

    return {
      title: '欢迎打开我的微信小程序【废话文学间】'
      imageUrl: '', // 可自定义图片,若图片URL为空则默认取小程序Logo
      query: 'id=1&name=' + encodeURIComponent('中文内容和特殊字符’)
    };

}

实测中,微信云开发中的数据库查询相关 API 也会受限制,如果将某个重度依赖微信云开发数据库查询的页面分享到朋友圈,用户在朋友圈点击打开将是一个相当不完整的页面,那体验会大打折扣(虽然这个【单页模式】右下角会有一个【前往小程序】可以打开小程序体验完整页面功能,但大多用户估计也不会注意到这么一个按钮,就算注意到了,也没多少人会愿意点击)。

本人想到一个蹩脚的解决办法就是在分享前,将该页面需要用到的数据先查询出来,塞到【query】参数中传过去,由页面去接收处理。但这样也有缺点,就是前面提到的: 不可传过多的数据 。如果你有更好的方法,欢迎留言探讨!

欢迎关注微信公众号【废话文学阁】了解更多开发资讯!

https://i-blog.csdnimg.cn/blog_migrate/2ac98bd810987038d1a3dc4341339306.png