WeixinJSBridge 和wx js-sdk区别

1,958 阅读3分钟

在微信浏览器中,WeixinJSBridge 和 wx JS-SDK 都可以用于调用微信的原生功能,但它们有不同的使用场景和设计目的。理解它们之间的区别有助于更好地选择适合的开发方法。

WeixinJSBridge

WeixinJSBridge 是微信内部提供的一套原生接口,允许开发者直接调用一些微信的原生功能。然而,使用 WeixinJSBridge 直接调用微信功能有一些限制和不便之处:

  1. 不公开的接口:WeixinJSBridge 是微信内部的桥接接口,官方并没有公开详细的文档和支持,意味着其使用可能会受到版本更新和功能变更的影响,带来兼容性问题。
  2. 较为底层:直接使用 WeixinJSBridge 需要对微信的内部实现有更深的了解,开发难度较大,不适合一般开发者使用。
  3. 安全性和权限:直接调用 WeixinJSBridge 可能会绕过微信的安全检查和权限验证机制,存在安全风险。

wx JS-SDK

wx JS-SDK 是微信官方提供的一套前端开发工具包,旨在为开发者提供安全、稳定和方便的微信原生功能调用接口。它基于 WeixinJSBridge 封装,提供了更高层次的 API,并确保安全性和兼容性。

主要优点:

  1. 官方支持:wx JS-SDK 是微信官方发布并维护的,提供详细的文档和技术支持,确保开发者能够顺利使用微信功能。
  2. 安全性:通过 wx JS-SDK 调用微信功能时,微信会进行安全验证(如签名校验),确保调用是合法的,并防止滥用。
  3. 封装良好:wx JS-SDK 对 WeixinJSBridge 进行了高层封装,提供了更简单易用的 API,降低了开发难度。
  4. 跨版本兼容:wx JS-SDK 通过版本控制和更新机制,确保不同版本的微信客户端都能正确支持相关功能。

为什么需要 wx JS-SDK 配置

配置 wx JS-SDK 是为了确保安全和功能的稳定。具体来说,配置过程主要包括以下几步:

  1. 绑定域名

先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。

备注:登录后可在“开发者中心”查看对应的接口权限。

  1. 步骤二:引入JS文件

在需要调用JS接口的页面引入如下JS文件,(支持https): res.wx.qq.com/open/js/jwe…

  1. 初始化:引入 通过 wx.config() 方法进行 SDK 初始化,配置各种参数,包括权限验证、功能开关等。

示例:

复制代码
wx.config({
  debug: false,
  appId: 'yourAppId',
  timestamp: timestamp,
  nonceStr: nonceStr,
  signature: signature,
  jsApiList: [
    'checkJsApi',
    'onMenuShareTimeline',
    'onMenuShareAppMessage',
    // 其他需要调用的 API
  ]
});

wx.ready(function() {
  // 在此处调用 wx API
});

wx.error(function(res) {
  // 处理初始化失败的情况
});

结论

尽管 WeixinJSBridge 可以直接调用微信的原生功能,但由于其不公开、不稳定和安全性问题,官方推荐使用 wx JS-SDK 来调用微信功能。wx JS-SDK 通过封装 WeixinJSBridge,提供了更安全、更稳定和更方便的 API,适合绝大多数开发者使用。通过配置 wx JS-SDK,可以确保功能调用的合法性和安全性,减少开发风险。