支付宝分享

发布: 2018-10-15 10:56:36标签: 前端开发

支付宝分享

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

01import { ready, isAliPay } from './utils'
02
03// 直接吊起分享
04async function startShare({
05 title = '',
06 url = window.location.href,
07 content = '',
08 imageUrl,
09 iconUrl = ''
10}) {
11 if (!isAliPay) return
12 await ready()
13 return new Promise(resolve => {
14 AlipayJSBridge.call(
15 'startShare',
16 {
17 // 当用户选择该数组内指定的分享渠道时,仅返回渠道名,而不是真正开始自动分享
18 onlySelectChannel: [
19 'Weixin',
20 'WeixinTimeLine',
21 'ALPContact',
22 'ALPTimeLine',
23 'ALPCommunity'
24 ]
25 },
26 data => {
27 // 通过onlySelectChannel屏蔽掉自动分享功能后,自行调用shareToChannel接口进行单独分享
28 AlipayJSBridge.call(
29 'shareToChannel',
30 {
31 name: data.channelName,
32 param: {
33 contentType: 'url', // 选填,目前支持支持"auto",text","image","url"格式(android分享组件不支持auto)
34 title,
35 content,
36 iconUrl,
37 imageUrl,
38 url,
39 captureScreen: false, // 是否分享当前页面的截图
40 otherParams: {
41 preContent: `#${title} ,全选拷贝本段文案后,打开支付宝#`,
42 bizType: 'COMMON_CONFIG', // 吱口令独有参数
43 btn2: '去看看', // 吱口令独有参数
44 btn2A: url // 吱口令独有参数
45 }
46 }
47 },
48 result => {
49 resolve(result)
50 }
51 )
52 }
53 )
54 })
55}
56
57// 默认分享,监听右上角点击事件
58export async function settingShare(shareData, title) {
59 if (!isAliPay) return // 不是支付宝返回
60 ready(() => {
61 AlipayJSBridge.call('setOptionMenu', {
62 title,
63 redDot: '-1', // -1表示不显示,0表示显示红点,1-99表示在红点上显示的数字
64 color: '#ffff6600' // 必须以#开始ARGB颜色值
65 })
66 document.addEventListener(
67 'optionMenu',
68 function() {
69 startShare(shareData)
70 },
71 false
72 )
73 })
74}
75
76// 支付宝分享
77export default startShare
78
复制代码
01// ready
02export function ready(callback) {
03 return new Promise(resolve => {
04 if (window.AlipayJSBridge) {
05 resolve()
06 if (callback) callback()
07 callback()
08 } else {
09 document.addEventListener(
10 'AlipayJSBridgeReady',
11 () => {
12 resolve()
13 if (callback) callback()
14 },
15 false
16 )
17 }
18 })
19}
20
复制代码