cshenfu
2023-05-08 2469d92f4c189eb595216707f4b4f0786fadb23f
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
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