wxShare.js 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. import {getWxSign} from '@/api/api';
  2. import { Toast } from 'vant';
  3. // import utils from '@/utils/utils';
  4. export default function wxShare(shareurl,title,desc,imgurl,hide){
  5. getWxSign({
  6. // Url: decodeURIComponent(utils.isIos() ? window.entryUrl : window.location.href)
  7. Url:window.location.href
  8. }).then((res)=>{
  9. if( res.Ret===200 ){
  10. wx.config({
  11. debug:false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
  12. appId:res.Data.AppId, // 必填,企业号的唯一标识,此处填写企业号corpid
  13. timestamp:res.Data.Timestamp, // 必填,生成签名的时间戳
  14. nonceStr:res.Data.NonceStr, // 必填,生成签名的随机串
  15. signature:res.Data.Signature,// 必填,签名,见附录1
  16. jsApiList:['updateTimelineShareData',//1.4.0的分享接口,注意:使用新版本的分享功能,一定要在该列表加上对应的老版本功能接口,否则新接口不起作用
  17. 'updateAppMessageShareData',//1.4.0的分享接口,注意:使用新版本的分享功能,一定要在该列表加上对应的老版本功能接口,否则新接口不起作用
  18. 'onMenuShareAppMessage',//老版本分享接口。
  19. 'onMenuShareTimeline',
  20. 'hideOptionMenu',
  21. 'showOptionMenu',
  22. 'hideMenuItems']
  23. });
  24. }else {
  25. console.log(res)
  26. Toast('获取签名失败,请刷新重试!')
  27. //如果需要强制刷新
  28. //window.location.reload()
  29. return
  30. }
  31. if( hide==1 ){
  32. wx.ready(function(){
  33. wx.hideOptionMenu();
  34. });
  35. }else{
  36. wx.ready(function(){
  37. // config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
  38. wx.showOptionMenu();
  39. wx.onMenuShareTimeline({
  40. title:title, // 分享标题
  41. link:shareurl, // 分享链接,该链接域名必须与当前企业的可信域名一致
  42. imgUrl:imgurl, // 分享图标
  43. success: function () {
  44. // 用户确认分享后执行的回调函数
  45. console.log('分享成功,地址:'+shareurl)
  46. },
  47. cancel: function () {
  48. // 用户取消分享后执行的回调函数
  49. console.log('取消分享')
  50. }
  51. });
  52. wx.onMenuShareAppMessage({
  53. title:title, // 分享标题
  54. desc:desc, // 分享描述
  55. link:shareurl, // 分享链接,该链接域名必须与当前企业的可信域名一致
  56. imgUrl:imgurl, // 分享图标
  57. type:'', // 分享类型,music、video或link,不填默认为link
  58. dataUrl:'', // 如果type是music或video,则要提供数据链接,默认为空
  59. success:function () {
  60. // 用户确认分享后执行的回调函数
  61. console.log( "分享成功,当前链接:"+shareurl );
  62. },
  63. cancel: function () {
  64. // 用户取消分享后执行的回调函数
  65. console.log('取消分享')
  66. }
  67. });
  68. wx.hideMenuItems({
  69. menuList: ['menuItem:share:qq','menuItem:share:weiboApp','menuItem:share:facebook','menuItem:share:QZone','menuItem:openWithSafari','menuItem:share:email'] // 要隐藏的菜单项,只能隐藏“传播类”和“保护类”按钮,所有menu项见附录3
  70. });
  71. });
  72. wx.error(function(res){
  73. console.log(res);
  74. });
  75. }
  76. });
  77. }