1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- 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
|