You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
98 lines
2.4 KiB
98 lines
2.4 KiB
import UniImageMenu from './uni-image-menu.js'; |
|
class UniShare extends UniImageMenu{ |
|
constructor(arg) { |
|
super() |
|
this.isShow = super.isShow |
|
} |
|
async show(param, callback){ |
|
var menus = [] |
|
plus.share.getServices(services => { //只显示有服务的项目 |
|
services = services.filter(item => item.nativeClient) |
|
let servicesList = services.map(e => e.id) |
|
param.menus.forEach(item => { |
|
if (servicesList.includes(item.share.provider) || typeof(item.share) == 'string') { |
|
menus.push(item) |
|
} |
|
}) |
|
super.show({ |
|
list: menus, |
|
cancelText: param.cancelText |
|
}, e => { |
|
callback(e) |
|
if(e.event == 'clickMenu'){ |
|
if (typeof(menus[e.index]['share']) == 'string') { |
|
this[menus[e.index]['share']](param) |
|
} else { |
|
uni.share({ |
|
...param.content, |
|
...menus[e.index].share, |
|
success: res=> { |
|
console.log("success:" + JSON.stringify(res)); |
|
super.hide() |
|
}, |
|
fail: function(err) { |
|
console.log("fail:" + JSON.stringify(err)); |
|
// uni.showModal({ |
|
// content: JSON.stringify(err), |
|
// showCancel: false, |
|
// confirmText: "知道了" |
|
// }); |
|
} |
|
}) |
|
} |
|
} |
|
}) |
|
}, err => { |
|
uni.showModal({ |
|
title: '获取服务供应商失败:' + JSON.stringify(err), |
|
showCancel: false, |
|
confirmText: '知道了' |
|
}); |
|
console.error('获取服务供应商失败:' + JSON.stringify(err)); |
|
}) |
|
} |
|
hide(){ |
|
super.hide() |
|
} |
|
copyurl(param) { |
|
console.log('copyurl',param); |
|
uni.setClipboardData({ |
|
data: param.content.href, |
|
success: ()=>{ |
|
console.log('success'); |
|
uni.hideToast() //关闭自带的toast |
|
uni.showToast({ |
|
title: '复制成功', |
|
icon: 'none' |
|
}); |
|
super.hide(); |
|
}, |
|
fail: (err) => { |
|
uni.showModal({ |
|
content: JSON.stringify(err), |
|
showCancel: false |
|
}); |
|
} |
|
}); |
|
} |
|
// 使用系统分享发送分享消息 |
|
shareSystem(param) { |
|
console.log('shareSystem',param); |
|
plus.share.sendWithSystem({ |
|
type: 'text', |
|
content: param.content.title + param.content.summary || '', |
|
href: param.content.href, |
|
}, (e)=> { |
|
console.log('分享成功'); |
|
super.hide() |
|
}, (err)=> { |
|
console.log('分享失败:' + JSON.stringify(err)); |
|
uni.showModal({ |
|
title: '获取服务供应商失败:' + JSON.stringify(err), |
|
showCancel: false, |
|
confirmText: '知道了' |
|
}); |
|
}); |
|
} |
|
} |
|
export default UniShare |