引入配置信息
- 接口获取配置信息
api.getWxConfigParams({
corpId: Config.corpId,
ticketType: 2,
url: encodeURIComponent(window.location.href.split('#')[0]),
f: 1// 游客态可以查询
}).then(res => {
if (res.code === 0) {
const { appId, nonceStr, signature, timeStamp } = res.data
//执行第二步
} else {
console.error(res.msg)
}
})
- 配置需要使用的功能
// 企业级注入
const data = {
beta: true, // 必须这么写,否则wx.invoke调用形式的jsapi会有问题
debug: false,
appId,
nonceStr,
signature,
timestamp,
jsApiList: [...jsApiList] // 必填,需要使用的JS接口列表,凡是要调用的接口都需要传进来
}
wx.config(data)
// 应用级注入
const data = {
corpid: corpId, // 必填,企业微信的corpid,必须与当前登录的企业一致
agentid: agentId + '', // 必填,企业微信的应用id (e.g. 1000247)
timestamp, // 必填,生成签名的时间戳
nonceStr, // 必填,生成签名的随机串
signature, // 必填,签名,见附录-JS-SDK使用权限签名算法
jsApiList: [...agentJsApiList], // 必填
success: function (res) {
console.warn('injectAgentConfig success', res)
success && success()
},
fail: function (res) {
console.error('injectAgentConfig fail', res)
fail && fail()
}
}
wx.agentConfig(data)
- 隐藏微信自带菜单项
wx.ready(function() {
wx.hideMenuItems({
menuList: ["menuItem:copyUrl","menuItem:editTag","menuItem:delete","menuItem:originPage","menuItem:readMode", "menuItem:openWithQQBrowser", "menuItem:openWithSafari","menuItem:share:email","menuItem:share:brand","menuItem:share:qq","menuItem:share:QZone"] // 要隐藏的菜单项,只能隐藏“传播类”和“保护类”按钮
});
});
// 传播类
// 发送给朋友: "menuItem:share:appMessage"
// 分享到朋友圈: "menuItem:share:timeline"
// 分享到QQ: "menuItem:share:qq"
// 分享到Weibo: "menuItem:share:weiboApp"
// 收藏: "menuItem:favorite"
// 分享到FB: "menuItem:share:facebook"
// 分享到 QQ 空间/menuItem:share:QZone
// 保护类
// 编辑标签: "menuItem:editTag"
// 删除: "menuItem:delete"
// 复制链接: "menuItem:copyUrl"
// 原网页: "menuItem:originPage"
// 阅读模式: "menuItem:readMode"
// 在QQ浏览器中打开: "menuItem:openWithQQBrowser"
// 在Safari中打开: "menuItem:openWithSafari"
// 邮件: "menuItem:share:email"
- 注意点
// 1. 应用级注入要保证已经注入了企业级,并且agentConfig是企业级jsApiList中的一种功能,需要添加,一般企业级的功能和微信差不多,这里就不描述了,具体可以查看开发文档
// 2. 应用级的jsApiList中有 将H5页面通过个人群发发送给客户(shareToExternalContact)、聊天工具栏分享消息到会话(sendChatMessage)、打开添加客户页面(navigateToAddCustomer)等功能,使用时可以对应文档添加(注:企微开发文档中提供的api记得查看是在那个注入下,使用时添加到对应的jsApiList下)
// 3. 企业微信的api不是每一个都需要使用agentConfig,需注意每个接口的说明
// 4. jsdk开发文档中没有提供失败的回调,那么一般来说就没有失败的回调,文档中对回调事件中指定的if判断可能不准确
// 5. jsdk文件最好是入口文件引入,如果企业微信端和微信端都有,建议分包,不用js逻辑进入,不然会由于js异步(网络加载慢时)导致页面加载是使用wx报错
注: 同一个页面不能重复引入配置信息,回导致配置失效;禁用企业微信右上角三个点的时候,一般要先在配置信息里隐藏再显示,且配置只适合当前操作页面,跳转后如果需要隐藏需要重新配置
具体功能可以参考企业微信开发文档、企业微信jsdk-api-dome文档
企业微信开发本地代理–charles
1.下载安装charles
在马可波罗上下载对应的安装包,解压后会看见一个 SN.rtf 文件里面有注册号,安装提示需要填入注册号的时候填入即可,下载地址如下:mac破解版下载
2.charles代理配置
配置代理接收设置----配置代理地址----开启本地代理
设置好对应的代理地址,打开对应的企业微信内置应用,就能把企业微信代理到电脑本地进行开发调试了.由于没有使用微信开发者工具开发企业微信,所以前期会先使用mock登录的方式开发联调,基本通了之后会上测试环境进行调测,这个时候就要使用上述方式进行修改,特别是一些只运行在企微环境的api
3.手机代理本地
手机代理本地需要下载对应的证书,先保证手机运行的环境和电脑在同一个局域网下,一般保证同一个Wi-Fi即可,选中对应的wifi之后打开手动代理,修改代理的ip和端口,如下图大码的部分即为需要修改的ip,端口一般都是8888.点击代理之后charles会弹出一个是否允许代理的弹框,点击allow即可.证书的下载地址为图下红框标注的地方,以小编红米手机为例,用非手机自带浏览器打开即可安装,如果不能安装可以先把证书下载到本地,之后使用 从SD卡安装 安装,安装好中后配置对应的手机代理即可.如果所有都检查之后发现还是没有代理到,可以多在手机上刷新几次.