微信小程序转发功能

微信小程序转发功能,第1张

微信 小程序 转发涉及以下4个方法:

1、Page.onShareAppMessage({})

设置右上角“转发”配置,及转发后回调函数返回 shareTicket 票据

2、wx.showSahreMenu()

用户点击右上角后,显示“转发”按钮

3、wx.hideShareMenu()

隐藏转发按钮,无视 Page.onShareAppMessage({})

4、wx.getShareInfo({})

根据 shareTicket 获取已加密的群信息

把转发流程切分:转发前配置->转发时->转发到群组后打开->二次转发

转发流程图:

这里写图片描述

U1: 用户

T1,T2,T3:表示转发票据,即 shareTicket

G1,G2,G3:群组

1.转发前配置

页面 onLoad 方法添加

withShareTicket 为 true 时,表示允许转发时是否携带 shareTicket。

shareTicket 是获取转发目标群信息的票据,只有拥有 shareTicket 才能拿到群信息,用户每次转发都会生成对应唯一的shareTicket 。

shareTicket 有两个用途:

用户主动转发后,获取转发到目标群群信息,对应上图UI。

用户在群组中打开小程序,获取群组信息,对应上图 G1 群组中的用户。

2.转发时获取群信息

当某个小程序被转发到群组后,开发者想获取到转发目标群组信息,将用户和群组做某种绑定关系(openId + openGid)。

shareTickets 是一个数组,每一项是一个 shareTicket ,对应一个转发对象,转发给用户不会包含shareTicket。

拿到 shareTicket 之后,使用 wx.getShareInfo({}) 方法传入 shareTicket 参数,wx.getShareInfo({}) 里回调函数中包含 已加密的群信息和 向量IV。

3.转发到群组后打开

用户将小程序转发到微信群组后,群成员打开小程序,通过 shareTicket,开发者就能将群成员和群组绑定起来(openId + openGid),基于群组关系,小程序有更多的应用场景,例如:王者荣耀群排行,摩拜单车。

在群组中打开小程序,页面onLoad 或 onShow 方法包含 scene 和 shareTicket,需要判断 scene 是否为1044,如果不是则不包含 opt 中 shareTicket 参数。

4.二次转发

二次转发重复前3个步骤,没什么可说的,但是有一个方向值得探讨,可否把小程序转发路径比作转发链,进而生成转发树,用数据结构方法(树、马尔科夫链)处理发现群组与群组,群组与成员之间微妙关系。

如开头那张图,我们很容易看出转发链和转发树。

转发链:U1 >G1 >G2

转发树:U1 >G1 >G2 &G3

onShareAppMessage(Object object)

官网是这样说的

(一)在我们自己的项目内,对应的js文件中这样写,一般在生成小程序文件的时候默认会显示这样的语句:

那么,在我们小程序界面右上角菜单就会显示“转发”按钮:

(二)除了默认的方法外,我们还可以自定义转发的标题与内容,此事件处理函数需要 return 一个 Object,用于自定义转发内容:

实现:

(三)一般为了引导用户的转发,我们还会在界面上设置转发按钮,比如“分享给好友”

(按钮样式还是需要自己调整的)

这时候d出的内容则跟我们右上角菜单的“转发”行为一致。

官方Tips

1.不自定义转发图片的情况下,默认会取当前页面,从顶部开始,高度为 80% 屏幕宽度的图像作为转发图片。

2.转发的调试支持请查看 普通转发的调试支持 和 带 shareTicket 的转发

3.只有转发到群聊中打开才可以获取到 shareTickets 返回值,单聊没有 shareTickets

4. shareTicket 仅在当前小程序生命周期内有效

5.由于策略变动,小程序群相关能力进行调整,开发者可先使用 wx.getShareInfo 接口中的群 ID 进行功能开发。

6.微信7.0.12开始,支持群主转发小程序时同时把消息设为该群的群待办消息,群待办消息会以气泡形式出现在聊天窗口底部。默认每次转发一个群待办消息,都会生成一个待办消息气泡。通过 wx.updateShareMenu 接口修改 toDoActivityId 属性可以把多个待办消息聚合为同一个,即转发相同 toDoActivityId 的群待办消息,只会出现一个待办消息气泡。 toDoActivityId 需要在转发前通过 updatableMessage.createActivityId 接口创建。

(四)另外关于转发,官方还提供了其他几个API方法:

1)wx.updateShareMenu(Object object):更新转发属性

2)wx.showShareMenu(Object object):显示当前页面的转发按钮

3)wx.hideShareMenu(Object object):隐藏转发按钮

4)wx.getShareInfo(Object object):获取转发详细信息

最后这一个还没有理清楚,目前测试报错,后期理清了再来更新。

1、域名必须是HTTPS

非HTTPS的域名不被微信小程序允许。

2、input组件placeholder字体颜色

写在placeholder-class里面的color并不生效,需要写在placeholder-style里面就可以了。

3、wx.navigateTo无法跳转到带tabbar的页面

带有tabbar的页面,必须使用wx.switchTab进行跳转。

4、tabbar在切换时页面数据无法刷新

tabbar的实现可能是显示和隐藏view,所以,不会一直调用page.onLoad()方法,可以尝试把代码逻辑写在page.onShow()里面。

5、如何获取shareTickets

获取shareTickets需要在app.onLaunch或者app.onShow里面才能获取到,而不是page.onShow,请一定要注意。

注:建议在app.onShow里面去获取,app.onLaunch不是一直会执行。

6、getPhoneNumber获取手机号

目前该接口针对非个人开发者,且完成了认证的小程序开放。个人开发者是没办法调用这个API的。

7、wx.previewImage图片预览

预览的图片URL必须是HTTPS开头,不能是本地图片。

8、wx.playVoice音频播放

必须保证音频文件已经在本地,比如在wx.startRecord后,可以获取到filePath。或者提前调用wx.downloadFile来下载资源文件,然后再播放。

9、API老版本兼容

可以用wx.canIUse或者wx.getSystemInfoSync来进行判断,老版本给出相应提示即可。

10、获取系统信息

wx.getSystemInfo,可得到系统语言、屏幕宽高、微信版本号、 *** 作系统、设备像素比、客户端甚础库版本等信息。

11、如何去掉自定义button灰色的圆角边框

主要是button的伪元素设置了样式,去掉即可: button::after{ display: none}。

12、回到页面顶部

回到页面顶部,有两种方式:

A、使用scroll-view设置为纵向滚动,然后设置scroll-top值;

B、使用wx.pageScrollTo方法,此方法是1.4.0开始支持,所以要做低版本兼容;

13、input textarea是APP的原生组件,z-index层级最高

有做过搜索框的同学,可能会遇到IOS下面,设置icon的z-index后,依然无法显示。建议做显示隐藏效果:点击之前是一个view,点击之后隐藏view,显示input~。

14、小程序如何冷启动

小程序的机制,是在退出五分钟内进入,就会显示的是退出前的页面,如果你希望进入小程序都相当于冷启动的方式,直接进入主页面。你可以在page的onUnload里面里面set一个值,然后在app的onShow的时候判断这个值,然后决定是否跳到首页~

15、一段文字如何换行

小程序中唯一可以实现换行的标签组件是text。

注:text中不支持<br>,只能使用\n进行换行。

16、设置最外层标签的margin-bottom在IOS下不生效

margin-bottom在安卓和开发工具里面都正常,就是在IOS下不起效,建议改成padding-bottom。

17、小程序中canvas的图片不支持base64格式

base64格式图片,在开发工具里面可以正常显示,真机上没有显示。建议修改成带https开头的url形式。

二,可以直接在第三方平台上面开发小程序


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/11726839.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-18
下一篇2023-05-18

发表评论

登录后才能评论

评论列表(0条)

    保存