irpas技术客

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

irpas 2490

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

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

首先,页面需设置允许“发送给朋友”。具体参考?Page.onShareAppMessage?接口文档

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

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

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

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

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

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

参数解释:

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

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

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

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

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

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

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


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #微信小程序分享api