H5 微信端分享功能模块各按钮禁用,打开处理,及分享组件

47 篇文章 0 订阅
16 篇文章 0 订阅

在这里插入图片描述
首先,路由切换是每个页面都默认调用微信方法关闭。看你要关闭那些
https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#44 官方文档地址

项目加载的时候需要去注入微信wx.config 。但要调用微信sdk .我这是通过后台拿的签名等数据
在这里插入图片描述

  created(){
    GET_CONFIG({appId:APP_ID,url:window.location.href.split("#")[0]}).then(res=>{
      let data = res.data;
      console.log(data)
      wx.config({
        debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
        appId: APP_ID, // 必填,公众号的唯一标识
        timestamp:data.timestamp,  // 必填,生成签名的时间戳
        nonceStr:data.noncestr, // 必填,生成签名的随机串
        signature: data.signature,// 必填,签名
        jsApiList: ['updateAppMessageShareData','updateTimelineShareData',
        'onMenuShareWeibo','onMenuShareAppMessage','onMenuShareTimeline',
        'hideAllNonBaseMenuItem','showMenuItems','hideMenuItems','showAllNonBaseMenuItem'
        ] // 必填,需要使用的JS接口列表
      });
      // wx.ready(function () {
      //   //  wx.hideAllNonBaseMenuItem(); // 隐藏微信 右上角功能--所有非基础按钮
      //     wx.hideMenuItems({
      //       menuList: ["menuItem:share:QZone","menuItem:share:facebook",
      //       "menuItem:share:weiboApp","menuItem:share:qq",
      //       "menuItem:share:timeline","menuItem:share:appMessage"] // 要隐藏的菜单项,只能隐藏“传播类”和“保护类”按钮,所有menu项见附录3
      //     })
      // })
    });
  }
}

分享点击是。调用组件
在这里插入图片描述

<template>
    <!-- 微信分享---公共组件 -->
    <div class="share_div" v-show="getShareShow" @click="getShareShowFu">
      <i></i>
    </div>
</template>

<script>
    // import {API_HOST} from "../../../config/index.js";
    export default {
        props: {
          configShare: { // 分享参数配置
            type: Object,
            default() {
              return {
                title:"", // 分享标题
                desc:"", // 分享描述
                link: "", // 分享链接--跳转地址
                imgUrl:"" // 分享图片地址
              }
            }
          },
          sharingType: { // 分享按钮有哪些
            type: Array,
            default() {
              return ['wxFriend','wxCircleFriends','qq','qqSpace']; // wxFriend -- 微信朋友。  circleFriends:朋友圈  qqSpace: QQ空间  qq:QQ
            }
          },
          shareShow: { // 是否显示分享提示
             type: Boolean,
             required: false
          }
        },
        data() {
            return {
              getShareShow: this.shareShow,
              getConfigShare: this.configShare,
              getSharingType: this.sharingType
            }
        },
        components: {
            
        },
        watch:{
          getShareShow: (val)=>{
              console.log('监听分享', val)

          }
        },
        created() {
            
        },
        mounted() {
          this.share(this.getConfigShare);
        },
        computed: {
            
        },
        methods: {
                        //  微信付目录--传播类
            // 发送给朋友: "menuItem:share:appMessage"
            // 分享到朋友圈: "menuItem:share:timeline"
            // 分享到QQ: "menuItem:share:qq"
            // 分享到Weibo: "menuItem:share:weiboApp"
            // 收藏: "menuItem:favorite"
            // 分享到FB: "menuItem:share:facebook"
            // 分享到 QQ 空间 "menuItem:share:QZone"
            share(configInfo){
                let shareTyleObj = {
                  'wxFriend':"menuItem:share:appMessage",
                  'wxCircleFriends': "menuItem:share:timeline",
                  'qq': "menuItem:share:qq",
                  'qqSpace': "menuItem:share:QZone"
                };
                let b = [];
                this.getSharingType.forEach(element => {
                  if(!!shareTyleObj[element]){
                    b.push(shareTyleObj[element]);
                  }  
                });
                wx.showMenuItems({
                  menuList: b // 要显示的菜单项,所有menu项见附录3
                });
               console.log('232323')
               wx.ready(function () {   //需在用户可能点击分享按钮前就先调用
                    // let configInfo={
                    //     title:"拼团免费领取赠险",
                    //     desc:"拼团成功,即可获得一份太平交通意外赠险,行动起来吧!",
                    //     link: location.href,
                    //     imgUrl:"https://wxapptest.tpi.cntaiping.com/web/wxapp/0813/share_img.png"
                    // }
                    // “分享给朋友”及“分享到QQ”
                    wx.updateAppMessageShareData({ 
                        title: configInfo.title, // 分享标题
                        desc: configInfo.desc, // 分享描述
                        link: configInfo.link, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
                        imgUrl: configInfo.imgUrl, // 分享图标
                        success: function () {
                            console.log()
                        // 设置成功
                        }
                    });
                    // “分享到朋友圈”及“分享到QQ空间”
                    wx.updateTimelineShareData({ 
                        title: configInfo.title, // 分享标题
                        link: configInfo.link, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
                        imgUrl: configInfo.imgUrl, // 分享图标
                        success: function () {
                        // 设置成功
                        }
                    });
                })
            },
            getShareShowFu(){
                this.$emit('getShareShowFu', false)
                this.getShareShow = false;
            }
        },
     }
</script>

<style lang="less" scoped>
   .share_div{
        position: absolute;
        top: 0;
        bottom: 0;
        left: 0;
        right: 0;
        text-align: right;
        // z-index: 11;
        background: rgba(0, 0, 0, 0.8);
        i{
            background: url('~@/assets/images/icon_share.png') no-repeat;
            background-size: 100%;
            width: 175px;
            height: 175px;
            display: inline-block;
            // float: right;
            margin-right: 15px;
        }
   }

</style>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值