支付宝分享

支付宝分享

工具方法(开始分享、默认分享、默认吱口令配置)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
import { ready, isAliPay } from './utils'

// 直接吊起分享
async function startShare({
title = '',
url = window.location.href,
content = '',
imageUrl,
iconUrl = ''
}) {
if (!isAliPay) return
await ready()
return new Promise(resolve => {
AlipayJSBridge.call(
'startShare',
{
// 当用户选择该数组内指定的分享渠道时,仅返回渠道名,而不是真正开始自动分享
onlySelectChannel: [
'Weixin',
'WeixinTimeLine',
'ALPContact',
'ALPTimeLine',
'ALPCommunity'
]
},
data => {
// 通过onlySelectChannel屏蔽掉自动分享功能后,自行调用shareToChannel接口进行单独分享
AlipayJSBridge.call(
'shareToChannel',
{
name: data.channelName,
param: {
contentType: 'url', // 选填,目前支持支持"auto",text","image","url"格式(android分享组件不支持auto)
title,
content,
iconUrl,
imageUrl,
url,
captureScreen: false, // 是否分享当前页面的截图
otherParams: {
preContent: `#${title} ,全选拷贝本段文案后,打开支付宝#`,
bizType: 'COMMON_CONFIG', // 吱口令独有参数
btn2: '去看看', // 吱口令独有参数
btn2A: url // 吱口令独有参数
}
}
},
result => {
resolve(result)
}
)
}
)
})
}

// 默认分享,监听右上角点击事件
export async function settingShare(shareData, title) {
if (!isAliPay) return // 不是支付宝返回
ready(() => {
AlipayJSBridge.call('setOptionMenu', {
title,
redDot: '-1', // -1表示不显示,0表示显示红点,1-99表示在红点上显示的数字
color: '#ffff6600' // 必须以#开始ARGB颜色值
})
document.addEventListener(
'optionMenu',
function() {
startShare(shareData)
},
false
)
})
}

// 支付宝分享
export default startShare
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// ready 
export function ready(callback) {
return new Promise(resolve => {
if (window.AlipayJSBridge) {
resolve()
if (callback) callback()
callback()
} else {
document.addEventListener(
'AlipayJSBridgeReady',
() => {
resolve()
if (callback) callback()
},
false
)
}
})
}