企业微信JSSDK-转发分享功能(单页面应用,二次分享)

这里写自定义目录标题

  • 说明
    • 需要注意的问题

说明

默认你对企业微信的JSSDK调用过程比较熟悉,请自行查看文档说明(https://work.weixin.qq.com/api/doc/?view=10029#90000/90136/90512),本文主要对自己当时使用JSSDK遇见的问题作说明和记录,方便以后自己查看,也希望能对正好遇见此类问题的开发者节省时间.

需要注意的问题

1.获取签名参数的链接必须与当前页面链接保持相同(除了当前页面的hash部分,一般获取签名的链接都是通过location.href.split(‘#’)[0]获取,而且需要encodeURIComponent),因为页面一旦分享,企业微信客户端会在你的链接末尾加入其它参数,如果不是动态获取当前链接,将导致分享后的页面签名失败)

2.获取签名的链接和分享的链接只要域名相同,链接地址可以不一样

3.二次分享,单页面只在页面地址变化的情况下去重新请求注入config权限,地址没有变化,首次注入就可以了

4.配置的安全域名必须是ICP备案过的,且需要在验证域名可行性(企业微信后台配置验证)

5.如果url中的参数有汉字或者链接需要对参数进行encodeURIComponent编码

如:
platform=“企业微信”
useIframe=true
url=http://mp.weixinxxx.qq.com/s?__biz=MjM5ssMDQ2Mjg3Mg==&mid=265xx1947699&idx=1&sn=3499536126e7a083e38527cb443ef5a3&chksm=bda144448ad6cd521b25193a8d269c8a55a89401632ef40e7310dca3f2a07b2b3580ee410d5078&scene=27&usxxxffeIframe=true
title=1个600亿美元大疆等于3个3D打印,无人机与3D打印行业对比

  let encodeurl = encodeURIComponent(url)
  let encodeplatform = encodeURIComponent(platform)
  let encodetitle = encodeURIComponent(title)
  let baseUrls = window.location.protocol + '//' + window.location.host;

  let shareLink = baseUrls + '/pageview?platform=' + encodeplatform + '&newsUrl=' + encodeurl + '&title=' + encodetitle

6.获取签名时,需整体对url进行encodeURIComponent编码

你可能感兴趣的:(web前端)