企业微信h5开发(即JS-SDK),一不小心,就会掉进坑,进入死胡同

这篇具有很好参考价值的文章主要介绍了企业微信h5开发(即JS-SDK),一不小心,就会掉进坑,进入死胡同。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        最近在开发企业微信的业务,可以借此机会学习到企业微信的开发,这让我非常开心、激动。殊不知,企业微信的开发让我很头疼,遇到了非常多的坑。在这里我记录一下,希望大家不要像我一样掉进坑里面。

 一、wx.agentConfig方法,在手机app端的企业微信是存在的,可是在桌面pc端的企业微信不存在,直接就undefined。

        1、发现问题:

        图1.1

企业微信js-sdk,bug专栏,前端,微信小程序,javascript,微信

         图1.2

企业微信js-sdk,bug专栏,前端,微信小程序,javascript,微信

        在企业微信h5开发之前,必须引入两份js(如上图1.1和图1.2),分别是jweixin-1.2.0.jsjwxwork-1.0.0.js(调用wx.agentConfig需要引入jwxwork-1.0.0.js)。对于我而言,一般都会先把这两份js文件下载下来,然后放到公司的静态资源服务器上(其实大部分开发者都会这样做,毕竟公司的静态资源服务器比较稳定),但是,就是这个操作,就引发了一个缺陷,什么缺陷呢?

        就是在电脑pc端的企业微信wx.agentConfig是undefined,不存在了。可是,手机app端的企业微信wx.agentConfig是存在。出现这种神奇的问题,就非常消耗开发者的时间去排查问题,甚至进入死胡同。

        2、分析问题:

        为了解决这个问题,script标签里的js链接,我用官方提供的js链接,不用公司静态资源服务器的链接。此时此刻,大快人心,电脑pc端的企业微信wx.agentConfig不再是undefined。并且调用其他的api都正常了。

        图1.3

企业微信js-sdk,bug专栏,前端,微信小程序,javascript,微信

        在电脑pc端的企业微信打开调试工具(快捷键 ctrl + alt + shift + D,开启调试模式,打开h5后,右击,如上图1.3,可以打开调试工具),仔细查看,发现:官方提供js链接,其实就是服务器,对电脑pc端企业微信做了兼容处理(如下图1.4、图1.5、图1.6)。

        图1.4,可见,jweixin-1.2.0.js暂时重定向了,

企业微信js-sdk,bug专栏,前端,微信小程序,javascript,微信

         图1.5, jweixin-1.2.0.js根本就没有加载进来

企业微信js-sdk,bug专栏,前端,微信小程序,javascript,微信

         图1.6, 旧版的jweixin-1.0.0.js就被加载进来了。因为旧版的jweixin-1.0.0.js是存在wx.agentConfig方法的。所以不需要引入jwxwork-1.0.0.js也是可以的

        上文提到需要引入两份js,你可以理解为:旧版的jweixin-1.0.0.js,一个顶两个。

企业微信js-sdk,bug专栏,前端,微信小程序,javascript,微信

         3、得出结论

        方案一:直接使用官方的js链接,缺点:万一官方的服务器挂了,页面就报错了。

        方案二:把旧版的jweixin-1.0.0.js下载下来,放到公司的静态资源服务器,然后引入,就可以完美解决问题了。目前,旧版的jweixin-1.0.0.js链接官方文档根本就没有写出来。可通过下图1.7找到它的链接,链接为:https://res.wx.qq.com/wwopen/js/jsapi/jweixin-1.0.0.js。

        图1.7,被重定向后的链接

企业微信js-sdk,bug专栏,前端,微信小程序,javascript,微信

二、关于wx.error方法的回调函数的形参问题

        1、发现问题

        我目前打印一下失败的校验信息(如下图2.1)

        图2.1

企业微信js-sdk,bug专栏,前端,微信小程序,javascript,微信

        在手机app端打印的内容截图(如下图2.2),打印出来这样的错误信息:{"err_Info":"params_empty","errMsg":"config:preverifyjsapi:fail"}

        图2.2

企业微信js-sdk,bug专栏,前端,微信小程序,javascript,微信

        在电脑pc端打印的内容截图(如下图2.3),打印出来这样的错误信息:{"errMsg":"config:fail","err_msg":"some parameters are empty more info at https://open.work.weixin.qq.com/devtool/query?e=40063"}

         图2.3

 企业微信js-sdk,bug专栏,前端,微信小程序,javascript,微信

        2、得出结论

         不难发现,手机app端和电脑pc端的企业微信打印出来的错误信息是不一样的,这不是重点,重点是:这个信息会误导我们,让我们误以为,我们开发者配置的东西出了问题。事实上,就算是正确的配置,也是会这样打印出这样的信息,可以先不要纠结这个错误信息。

        如果是第一次开发企业微信h5的开发者,需要特别注意,当你看到这样的信息,可以暂时忽略,直接看看其他的api是否调用成功;如果不能调用成功,再回过头来看。

三、关于企业微信后台的配置,需要注意的地方

        1、前言

        我目前做的需求有一个功能是:管家要在客户聊天窗口中,点击工具栏,打开h5页面后,分享小程序。

        企业微信h5开发,一般需要自建应用。登录企业微信后台-----应用管理-----自建----自建应用(如下图3.1,图3.2)

        图3.1

企业微信js-sdk,bug专栏,前端,微信小程序,javascript,微信

        图3.2

企业微信js-sdk,bug专栏,前端,微信小程序,javascript,微信         创建应用之后,需要配置到聊天工具栏(如下图3.3),配置链接(如下图3.4)

        图3.3

企业微信js-sdk,bug专栏,前端,微信小程序,javascript,微信

         图3.4

企业微信js-sdk,bug专栏,前端,微信小程序,javascript,微信

        2、发现问题        

        配置完之后,需要关联被分享的小程序(如果不关联小程序,是没有办法在企业微信中打开,影响用户体验),你可能会毫不犹豫的在刚刚创建的应用关联(如下图3.5),此时此刻,会引发什么问题呢?

        图3.5

企业微信js-sdk,bug专栏,前端,微信小程序,javascript,微信

         会引起的问题在配置到聊天工具栏的h5链接,无法修改(如下图3.6、图3.7)。此时,开发者又要耗费时间去研究了。

         图3.6企业微信js-sdk,bug专栏,前端,微信小程序,javascript,微信

        图3.7

        3、解决问题         

        其实要解决这个问题很简单,在应用主页先切回到为“网页”(如下图3.8),之后,就可以在配置到聊天工具栏中对h5链接进行修改。改完之后,再回到应用主页切回“小程序”即可。

         图3.8

企业微信js-sdk,bug专栏,前端,微信小程序,javascript,微信

        说了那么多,你可能会说,“为什么不同时创建两个应用,一个应用对应h5、另外一个应用对应小程序”,其实这样也是可以的。

        4、注意点

         刚刚说到,管家要在客户聊天窗口中,点击工具栏,打开h5页面后,需要分享小程序。还需要在后台配置一下(如下图3.9),点开之后,需要勾选一下刚刚创建的应用,不然的话,企业微信h5的wx.invoke('sendChatMessage', {})方法是无法分享的。

        图3.9

企业微信js-sdk,bug专栏,前端,微信小程序,javascript,微信

希望本篇文章对你有帮助,如果您有更好的解决方案,欢迎留言评论! 文章来源地址https://www.toymoban.com/news/detail-516451.html

到了这里,关于企业微信h5开发(即JS-SDK),一不小心,就会掉进坑,进入死胡同的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • JS-SDK微信支付开发攻略

      一、吐槽篇 一个字——坑!两个字——很坑!三个字——非常坑!首先,微信支付接口作为微信开发接口的一部分,竟然有一本书那么厚的官方文档,共36页,更重要的是,这36页还不能把开发的流程说清楚,描述过于分散,过度分类,导致遇到一个问题的时候很难定位,

    2024年02月08日
    浏览(41)
  • 微信分享第三方连接(H5页面)自定义缩略图、标题、描述(显示分享框,而不是链接)(微信JS-SDK)

    首先要说明几个分享相关的问题: 现在微信不支持自定义按钮分享组件(也就是说不能点击某个按钮分享),只能通过微信右上角的三个小点,点击后选择分享给朋友,朋友圈等。 当前从企业微信分享到微信好友和微信朋友圈是有问题的,一些手机(有些是因为app版本,企

    2024年02月09日
    浏览(52)
  • 微信开发相关:使用微信 JS-SDK 接口

    通过微信 JS-SDK 接口,可以在自己写的 JS 程序中使用很多微信的功能。例如微信里的卡片式链接、拍照上传下载图片、录制播放上传下载音频、获取地理位置、使用摇一摇、扫一扫、微信支付等功能。 微信开发文档 首先需要有一个公众号,该公众号是需要能认证的(企业认证

    2024年02月09日
    浏览(36)
  • feat:使用企业微信JS-SDK的onMenuShareAppMessage()实现点击转发自定义分享内容(TypeScript)

    背景:企业微信应用使用企业微信JS-SDK的分享接口实现分享样式自定义 原生: 需要实现成: 企业微信JS-SDK 是企业微信面向网页开发者提供的 基于企业微信内 的网页开发工具包。 通过使用企业微信JS-SDK,网页开发者 可借助企业微信 高效地使用拍照、选图、语音、位置等手

    2024年02月07日
    浏览(41)
  • 微信公众号 H5 JS-SDK wx.config 报错 invalid url domain 及 invalid signature 错误原因及解决方式

    在项目进行JSSDK使用的过程中,出现了很多问题,其中报错invalid url domain 以及 invalid signature最多,也最头疼,部分坑在文档里也并没有写清楚,这里就简单说下这两个报错的原因和解决方式 当报错invalid url domain时 其实离成功不远了,错误原因也很直白,就是url并没有在公众

    2024年02月08日
    浏览(40)
  • 【小程序】微信 JS-SDK的使用:

    一、配置JS安全域名 1 .申请一个安全域名 2 .去微信公众平台下载MP_verify_WCdi1jnSEaGX59y0.txt,并将该文件方法到安全域名下,并确保再安全域名下能访问到这个文件,即http://xxxxxxxx/MP_verify_WCdi1jnSEaGX59y0.txt可以访问 3 .绑定js安全域名 4 .将该安全域名下的IP名单都添加到 公众平台—安

    2024年02月15日
    浏览(38)
  • 专访轮子哥:我在微软「造轮子」,一不小心成了知乎大V

    陈梓瀚Vczh,在网络上,大家可能熟悉他在知乎的外号——轮子哥。而在现实中,他的名字就印在久负盛名的C++经典教程《C++ Primer 第五版》的封面上,因为他是这本书的审校之一。 他常年利用闲暇时间开发C++图形界面库GacUI。这是一款在架构上跨平台、支持控件与模板分离、

    2024年02月06日
    浏览(44)
  • 微信 JS-SDK 实现自定义分享、手机选图拍照、图片音频处理、地理位置、摇一摇等功能

    微信 JS-SDK 是微信公众平台 面向网页开发者提供的基于微信内的网页开发工具包 通过使用微信 JS-SDK ,开发者可借助微信高效地使用 拍照 、 选图 、 语音 、 位置 等手机系统的能力 同时可以直接使用 微信分享 、 扫一扫 、 卡券 、 支付 等微信特有的能力,是管理微信一切

    2024年02月09日
    浏览(44)
  • 无条件抽奖和条件抽奖(互动功能发起端JS-SDK)

    允许开始前对抽奖进行奖品、中奖人数、中奖人员等设置,完成设置后可以开始抽奖。 本功能只支持讲师、嘉宾、助教、管理员这四种角色进行抽奖的发起和停止。 支持自定义设置中奖用户信息采集字段。 支持设置预设中奖用户。 支持设置定时开奖 可查看中奖名单     在

    2024年02月08日
    浏览(36)
  • 企业微信代开发应用步骤(小程序、H5同理)

    1.前提条件: 服务商进行微信认证 2.创建应用代开发模板 配置代开发模板回调URL: Token:随机获取(确定后不可更改,否则需更改服务端回调代码逻辑) EncodingAESKey:随机获取(确定后不可更改,否则需更改服务端回调代码逻辑) 已上线的模板更新过后需要 重新提交上线

    2024年02月01日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包