遇到很多坑记录一下

先看一遍微信的官方手册

https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html

代码实现步骤

第一步、引入大神写的微信工具包

<dependency><groupId>com.github.binarywang</groupId><artifactId>weixin-java-common</artifactId><version>3.7.0</version></dependency><dependency><groupId>com.github.binarywang</groupId><artifactId>weixin-java-miniapp</artifactId><version>3.7.0</version></dependency><dependency><groupId>com.github.binarywang</groupId><artifactId>weixin-java-mp</artifactId><version>3.7.0</version></dependency>

第二步、配置工具类的参数

我用的springboot resource里的配置就不放了

@Configuration
public class WeChatAccountConfig {@Value("${wechat2.appId}")private String appId;@Value("${wechat2.secret}")private String appSecret;@Value("${wechat2.token}")private String token;@Value("${wechat2.aesKey}")private String encodingAESKey;public String getAppId() {return appId;}public String getAppSecret() {return appSecret;}public String getToken() {return token;}public String getEncodingAESKey() {return encodingAESKey;}}
@Component
public class WeChatConfig {@Autowiredprivate WeChatAccountConfig weChatAccountConfig;@Beanpublic WxMpService wxMpService(){WxMpService wxMpService = new WxMpServiceImpl();wxMpService.setWxMpConfigStorage(wxMpConfigStorage());return wxMpService;}public WxMpConfigStorage wxMpConfigStorage(){WxMpDefaultConfigImpl wxMpConfigStorage = new WxMpDefaultConfigImpl();wxMpConfigStorage.setAppId(weChatAccountConfig.getAppId());wxMpConfigStorage.setSecret(weChatAccountConfig.getAppSecret());wxMpConfigStorage.setToken(weChatAccountConfig.getToken());wxMpConfigStorage.setAesKey(weChatAccountConfig.getEncodingAESKey());return wxMpConfigStorage;}}

第三步、获取微信签名

@AutoLog(value = "")@ApiOperation(value="", notes="活动")@GetMapping(value = "/getAppShareConfig")public Result<?> getAppShareConfig(HttpServletRequest req) {String url=req.getParameter("clientUrl");try {WxJsapiSignature signature = wxMpService.createJsapiSignature(url);return Result.ok(signature);} catch (Exception e) {return Result.error("获取签名出错");}}

第四步前台,调用签名并分享
微信jssdk别忘记自己引入一下

created() {this.imgPath=root;let id = this.$route.query.id;this.loadData(id);// alert(window.location.href.split('#')[0]);let clientUrl=window.location.href.split('#')[0];let params={clientUrl:window.location.href.split('#')[0]}appShareConfig(params).then(res =>{let data=res.result;console.log(data);wx.config({debug: false,appId: data.appId,timestamp: data.timestamp,nonceStr: data.nonceStr,signature: data.signature,jsApiList: ['updateAppMessageShareData','updateTimelineShareData']});wx.ready(function () {// 调整分享到微信以及QQ的形态wx.updateAppMessageShareData({title: document.title, // 分享标题desc: document.title, // 分享描述link: window.location.href,imgUrl: '图标url', // 分享图标}, function (res) {});// 调整分享到朋友圈以及QQ空间的形态wx.updateTimelineShareData({title: document.title, // 分享标题link: window.location.href, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致imgUrl: '分享出去的链接图片的url', // 分享图标}, function (res) {});});});},

到这基本步骤都已经完成了。
下面说一下遇到的坑。
第一个,vue默认的hash路由,参数就是带#的那种,为了避免麻烦我直接改成了history路由;

const router = new Router({ mode:'history',base:'/h5', routes });

然后nginx也是需要调整的

location /h5{alias  /opt/h5/;try_files $uri $uri/ /opt/h5/index.html;index index.html index.htm;if (!-e $request_filename) {rewrite ^/(.*) /h5/index.html last;break;}}

第二个,网上好多例子是ajax上传对整个url进行了encodeURIComponent(window.location.href.split(’#’)[0]。例如

 $.get('app/config.php?sign_url=' + encodeURIComponent(window.location.href.split('#')[0]), function (data) {

vue里一般都是axios json对象上传根本不需要多余的编码

Vue+H5 活动内容调用微信分享相关推荐

  1. vue 调用微信分享接口 分享截图图片

                                          vue 调用微信分享接口 分享截图图片 现在好多应用 都需要分享 图片等等的需求 . 大体需要 这几个步骤 获取分享图片 将 ...

  2. java对接微信分享_Java编程调用微信分享功能示例

    本文实例讲述了Java编程调用微信分享功能.分享给大家供大家参考,具体如下: 这篇文章介绍如何使用java开发微信分享功能,因为工作,已经开发完成,可使用. 如果想要自定义微信的分享功能,首先在自己的 ...

  3. java如何调用微信功能_Java编程调用微信分享功能示例

    本文实例讲述了java编程调用微信分享功能.分享给大家供大家参考,具体如下: 这篇文章介绍如何使用java开发微信分享功能,因为工作,已经开发完成,可使用. 如果想要自定义微信的分享功能,首先在自己的 ...

  4. 在H5页面中禁止微信分享转发按钮-mugeda

    在H5页面中禁止微信分享转发按钮(mugeda) 在页面脚本中插入以下代码 方法一: 加一段js代码 document.addEventListener('WeixinJSBridgeReady', ...

  5. 在H5页面中禁止微信分享转发按钮

    在H5页面中禁止微信分享转发按钮(mugeda) 在页面脚本中插入以下代码 方法一: 加一段js代码 document.addEventListener('WeixinJSBridgeReady', ...

  6. vue前端移动项目调用微信扫一扫的实现

    vue前端移动项目调用微信扫一扫的实现 1安装插件 npm install weixin-jsapi --save 2在main.js中引入 // 在man.js中引入 import wx from ...

  7. vue 如何调用微信分享_Vue项目通过JSSDK调用微信分享接口

    最近在做一个公司微信分享项目的功能,毕竟第一次做,对于小白也是个挑战,特此记录一下自己的开发过程,以便以后查阅.(转载请标明出处,码字好辛苦的qaq) 使用步骤: 1.绑定域名: 一开始当然是去查微信 ...

  8. 简单粗暴教你在VUE中引入微信SDK 调用微信分享、朋友圈分享、QQ分享......

    写在前面: 刚做了一个微信端的网页,用到了微信分享,在网上看了好多的资料,发现好多文档都写得云里雾里,让人看的头疼.通过对很多大佬文章的综合整理,才完成了微信分享的部分.所以我想着自己写一篇文章,能让 ...

  9. vue 如何调用微信分享_Vue开发 添加微信分享功能(全局分享)

    在Vue4.0开发微信公众号的时候,需要做微信分享功能.这个功能其实还算简单,具体的思路如下: 1.安装微信JSSDK和Axios(axios是http请求插件) 2.向后台请求微信配置参数 3.初始 ...

最新文章

  1. .中英文系统底层编码导致乱码问题
  2. OpenJudge/Poj 2027 No Brainer
  3. 电脑上怎么做pdf文件_PDF压缩文件怎么压缩最小?请收好这些PDF压缩方法
  4. HDU 5439 Aggregated Counting
  5. vscode 配置 路径别名 @
  6. 行!人工智能玩大了!程序员:太牛!你怎么看?
  7. nginx正则表达式
  8. ansible笔记汇总
  9. 漫步数学分析番外六(上)
  10. java调用MySQL脚本_Java调用SQL脚本执行常用的方法示例
  11. python程序下载腾讯企业邮箱附件_python收取邮件(腾讯企业邮箱)
  12. mysql删除的表怎么恢复_误删除mysql数据库表该如何恢复操作方法
  13. postman小技巧-提取变量及设置变量
  14. matlab norm函数_机器人手眼标定MATLAB及C++实现(二十九)
  15. MAC通过HDMI转VGA转接头连接显示器
  16. pythondocker——外部无法访问,报错:该网页无法正常运作
  17. 华为机试HJ69:矩阵乘法
  18. mysql 实数型变量定义,MySQL实数类型使用注意事项
  19. 长度单位换算python代码_长度单位换算的一种简便方法
  20. 介绍芯片时为什么都要介绍制程?制程到底是什么?14nm、10nm?

热门文章

  1. c语言课程设计挂科率高吗,有没有挂科的人指教下怎么让老师把成绩改高呢???...
  2. 计算机网络原理自考挂科率,3个“挂科率高”的专业,补考更是难上加难,看你专业上榜了吗...
  3. 微信小程序制作全流程(1)
  4. Glance 镜像服务
  5. 手把手教你解决PL2303驱动在Win10无法使用
  6. uniapp app真机测试
  7. [深度学习]动手学深度学习笔记-11
  8. Cypress之模拟键盘鼠标操作以及页面元素拖动操作
  9. 保存下载图片(taro h5)
  10. Android推送技术总结