uni-share.js 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. import uniImageMenu from './uni-image-menu.js';
  2. export default async (param,callback) => {
  3. var menus = []
  4. plus.share.getServices(services => { //只显示有服务的项目
  5. services = services.filter(item=>item.nativeClient)
  6. // console.log("servicesList",services);
  7. let servicesList = services.map(e => e.id)
  8. param.menus.forEach(item => {
  9. if (servicesList.includes(item.share.provider) || typeof(item.share) == 'string') {
  10. menus.push(item)
  11. }
  12. })
  13. console.log(menus);
  14. uniImageMenu.show({list:menus,cancelText:param.cancelText}, e => {
  15. console.log(e);
  16. if (typeof(menus[e]['share']) == 'string') {
  17. eval(menus[e]['share']+'()')
  18. } else {
  19. console.log(9527,{
  20. ...param.content,
  21. ...menus[e].share,
  22. });
  23. uni.share({
  24. ...param.content,
  25. ...menus[e].share,
  26. success: function(res) {
  27. console.log("success:" + JSON.stringify(res));
  28. },
  29. fail: function(err) {
  30. console.log("fail:" + JSON.stringify(err));
  31. uni.showModal({
  32. content: JSON.stringify(err),
  33. showCancel: false,
  34. confirmText:"知道了"
  35. });
  36. },
  37. complete(e) {
  38. uniImageMenu.hide()
  39. callback(e)
  40. }
  41. })
  42. }
  43. })
  44. }, err => {
  45. uni.showModal({
  46. title: '获取服务供应商失败:' + JSON.stringify(err),
  47. showCancel: false,
  48. confirmText: '知道了'
  49. });
  50. console.error('获取服务供应商失败:' + JSON.stringify(err));
  51. })
  52. function copyurl() {
  53. uni.setClipboardData({
  54. data: param.content.href,
  55. success: function () {
  56. console.log('success');
  57. uni.hideToast()//关闭自带的toast
  58. uni.showToast({
  59. title: '复制成功',
  60. icon: 'none'
  61. });
  62. },
  63. fail: (err) => {
  64. uni.showModal({
  65. content: JSON.stringify(err),
  66. showCancel: false
  67. });
  68. }
  69. });
  70. }
  71. // 使用系统分享发送分享消息
  72. function shareSystem() {
  73. plus.share.sendWithSystem({
  74. type: 'text',
  75. content: param.content.title + param.content.summary || '',
  76. href: param.content.href,
  77. }, function(e) {
  78. console.log('分享成功');
  79. callback(e)
  80. }, function(e) {
  81. console.log('分享失败:' + JSON.stringify(e));
  82. callback(e)
  83. });
  84. }
  85. }