微信jssdk在企业微信中失效

前段时候,开发了一个H5页面,由于老板要求需要自定义分享链接样式(也就是分享出去是卡片样式)。于是使用了jssdk;

jssdk官方链接(本文不是讲的如何使用这个sdk):
https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#1

最近,老板要求在企业微信中打开这个h5页面后, 不能使用复制链接功能。主要是想避免销售直接粘贴后就发给客户,让销售只能走h5的分享进行发送。

企业微信其实和微信都是使用的一个sdk来控制h5的选项功能,但是这里有个坑:

下面代码可以正常使用:

    wx.config({
            debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
            appId: 'wx764b87e48e670f08', // 必填,公众号的唯一标识
            timestamp: res.timestamp, // 必填,生成签名的时间戳
            nonceStr: res.nonceStr, // 必填,生成签名的随机串
            signature: res.signature ,// 必填,签名
            jsApiList: [
                'updateAppMessageShareData',
                'updateTimelineShareData',
                'hideMenuItems'

            ]
        });

        // 通过error接口处理失败验证
        wx.error(function (errres) {
            console.info("失败:", errres);
        });

        wx.ready(function () {   //需在用户可能点击分享按钮前就先调用
            var sharedata = {
                title: '分享标题', // 分享标题
                desc: `分享描述`, // 分享描述
                link: res.url, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
                imgUrl: location.protocol + "//" + location.host+ "/logo.png", // 分享图标
                success: function () {
                    // 设置成功
                }
            }
            // 记得判断,企业微信和微信暴露的函数不一样的,可能企业微信没有而微信有
            if(wx.updateAppMessageShareData) {
                wx.updateAppMessageShareData(sharedata);
            }

            // 记得判断,企业微信和微信暴露的函数不一样的,可能企业微信没有而微信有
            if(wx.updateTimelineShareData) {
                wx.updateTimelineShareData(sharedata);
            }

            // 记得判断,企业微信和微信暴露的函数不一样的,可能企业微信没有而微信有
            if(wx.hideMenuItems) {
                wx.hideMenuItems({// 要隐藏的菜单项,只能隐藏“传播类”和“保护类”按钮,所有menu项见附录3
                    menuList: [
                        "menuItem:copyUrl",
                        "menuItem:favorite",
                        "menuItem:share:timeline",
                        "menuItem:share:qq",
                        "menuItem:share:weiboApp",
                        "menuItem:share:facebook",
                        "menuItem:share:QZone",
                        "menuItem:editTag",
                        "menuItem:originPage"
                    ]
                });
            }

        });

一般jssdk开发时,在config中配置函数,再在ready中进行函数处理,这也是微信官方文档要求的流程。

这里的坑在于,某些函数在微信浏览器中是支持的,在企业微信浏览器中是不支持的。比如hideMenuItems函数再两个中都支持,但是注册卡片分享的updateTimelineShareData和updateAppMessageShareData函数,
这两只在微信中支持。所以函数那里需要使用if(wx.updateAppMessageShareData)进行判断,不然不支持的就会报错影响后续业务逻辑了。

所有可以隐藏的参数见文档:18 附录3-所有菜单项列表

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值