当前位置: 首页 > article >正文

微信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-所有菜单项列表


http://www.kler.cn/a/375152.html

相关文章:

  • 显示浏览器窗口的大小
  • Halcon-模板匹配(WPF)
  • SpringBoot【实用篇】- 测试
  • 【Rust中的序列化:Serde(一)】
  • 游戏和各大APP改IP地址方法教程
  • 第三份代码:VoxelNet的pytorch实现
  • BGP路径属性与路由反射器
  • 下划线命名转驼峰
  • 链表 算法专题
  • NCCL安装(Ubuntu等)
  • Python -- 网络爬虫
  • 如何将ppt转换成word文档?8款ppt转word免费的软件大揭秘,值得收藏!
  • js的小知识
  • 小牛视频翻译 ( 视频翻译 字幕翻译 字幕转语音 人声分离)
  • mysql增量同步工具有哪些
  • 打印室预约系统|基于java和小程序的打印室预约系统设计与实现(源码+数据库+文档)
  • 数据结构各章节概念
  • 【JS闭包】学习理解过程
  • ubuntu常用基本指令简记
  • 文本列的性能优化?深入Oracle全文索引
  • python在物联网领域的数据应用分析与实战!
  • springboot-Java注解(Annotation)
  • 深入理解HTTPS协议原理
  • 闲一品交易新趋势:SpringBoot技术应用
  • 【Java SE】类型转换
  • 数据源分层开发和连接池