支付宝分享
发布: 2018-10-15 10:56:36标签: 前端开发
支付宝分享
工具方法(开始分享、默认分享、默认吱口令配置)
01import { ready, isAliPay } from './utils'0203// 直接吊起分享04async function startShare({05 title = '',06 url = window.location.href,07 content = '',08 imageUrl,09 iconUrl = ''10}) {11 if (!isAliPay) return12 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}5657// 默认分享,监听右上角点击事件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 false72 )73 })74}7576// 支付宝分享77export default startShare78
复制代码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 false16 )17 }18 })19}20
复制代码