在分享增加抽奖次数、助力、组团等需要依赖分享来获得权益的场景下,用户分享时需要在链接携带参数以及做一些业务处理。在微信环境下,利用了微信的分享能力做了实现。但在其他环境下(如:APP、小程序)则需要做一些对接。
微信小程序
由于微信小程序的限制,难以直接调用JS函数。因此直接通过postMessage传递分享的数据。
获取分享参数
页面加载后通过postMessage传递分享相关参数。注意:小程序接收消息,会在以下特定时机触发组件的message事件:小程序后退、组件销毁、分享、复制链接。
- 调用示例
小程序中引入作品链接,通过bindmessage绑定事件函数。 - 参数示例
以下是内容中台传递参数的示例: - 参数说明
参数名 必须 参数类型 参数说明 type 是 String 类型,固定为:EQS_CREATION_SHARE shareData 是 json 分享信息 - title 是 String 分享标题 - link 是 String 分享链接(带https或者http) - imgUrl 是 String 图片url - summary 是 String 介绍 - replaceLink 是 String 替换链接,当分享成功后改变webview的src可用该链接,也可以自己在link链接后拼shareSuccess=1 - timesTamp 是 Long 推送时间,当前事件推送的时间戳,由于微信会重复推送事件,可通过该字段取最新的数据 -shareCallback 是 boolean 分享成功后是否需要回调。true-需要、false-不需要
使用分享参数
当小程序触发分享时使用第一步获得的参数(参照:https://developers.weixin.qq.com/miniprogram/dev/reference/api/Page.html#onShareAppMessage-Object-object):
被分享人打开小程序的分享卡片时,需要做一下判断,若有path时在webView里就使用分享的path。
分享成功回调
- 调用示例
A用户分享给B用户,当shareCallback为true 改变A用户webview的src为replaceLink,B用户访问取用link。 - 注意timesTamp-推送时间
当前事件推送的时间戳,由于微信会重复推送事件,可通过该字段取最新的数据
APP
引入JSSDK
JSSDK提供了”获取分享的参数“和”分享成功回调“的方法。在控制台-集成管理-自定义脚本(js)添加脚本。注意:加载JSSDK后,js即拥有了全局对象EQS,所有方法需要通过EQS对象调用。脚本地址:https://asset.eqxiu.cn/libs/@eqxiu/outAdapter/share/1.0.0/index.js
获取分享参数
方法名称:getShare
方法描述:获取分享信息,包括分享标题、链接、图片、说明等。
调用参数:getShare(paramRecvFun),paramRecvFun-接收参数的方法名。可选参数,支持某些不能直接返回参数的场景下,通过调用该方法传递参数。
调用样例:EQS.getShare()或EQS.getShare(‘paramRecvFun’)
返回示例:
参数说明:参照小程序返回参数说明
调用示例:
- Android 若使用loadUrl()调用方法,需要设置接收参数的方法。
- IOS
分享成功回调
- 方法名称:shareSuccess
- 方法描述:分享成功后的回调,用于内容中台进行业务处理。
- 调用样例:EQS.shareSuccess()
- 调用示例:
- Android