微信公众号默认的分享样式是直接分享一条链接的,样式丑陋。但是微信jsdk暴露了分享的API可以自定义分享样式。

一、分享鉴权及分享接口冲定义

这一块的文档很全面,不做细述。关键代码如下:

    function setConfig(appId) {axios.get(props.commonApi + '/Recruitment/WXGetSign?url=' + encodeURIComponent(window.location.href.split('#')[0])).then(function (res) {var result = res.data.result;wx.config({debug: false,appId: appId,timestamp: result.timeStamp,nonceStr: result.nonceStr,signature: result.signature,jsApiList: ['checkJsApi','onMenuShareTimeline','onMenuShareAppMessage','onMenuShareQQ','onMenuShareWeibo','onMenuShareQZone'],});wxShareReady({title: '分享链接标题',desc: '欢迎您的访问',link: window.location.origin + window.location.pathname + '?initial=wechat&hash=' + Base64.encode(window.location.href.split('#')[1]),imgUrl: 'https://public.xxx.com/images/logo.jpg'})})}
复制代码

关键点是传给后台的url鉴权链接要和当前url一致,通过encodeURIComponent传给后台拿到鉴权信息,wx.config里配置对应属性。

二、hash路由页面分享的实现

我这边解决的一个主要问题是,微信公众号分享后会把hash后面的字段丢弃掉,导致从详情页分享的页面,点击只能到跟路由页面。 要解决这个问题,第一种办法可以使用hastory模式;这个需要服务端配合设置,然后页面的链接就是不带hash的完整链接。 我这里使用第二种办法:在自定义分享的link字段时,将hash后的字段截取,Base64.encode一下赋值为hash变量放在url上分享出去,在页面进入的路由判断是否是分享进入的链接, 如果是则获取hash属性值Base64.decode一下使用框架的路由定向到对应的页面去,从而实现纯前端的方式分享完整页面链接。

三、不同页面重定义分享接口

最后补充一点,要想实现分享所有页面的完整路径,需要在页面的路由中重新调用wxShareReady传入当前页面的link,这样从不同页面分享的链接才会是对应的页面。

转载于:https://juejin.im/post/5cdb916cf265da03ab234bf5

微信公众号分享链接自定义hash值的处理相关推荐

  1. 微信公众号分享链接、图标、地址配置

    /wxapi/getJSApi 接口需要后端人员接入开发,并在接口内返回公众号的随机串和公众号标识和签名 let mainTitle = res.data.mainTitlelet subTitle ...

  2. 微信公众号分享配置无效。。分享出来的只是纯链接了,如何自定义微信公众号的分享

    微信公众号分享配置无效..分享出来的只是纯链接了 挺久没接微信公众号的项目开发了,最近突然接了一个,结果微信自定义分享给我整懵了.原本配置的好好的,屡试不爽的代码,居然死活不生效,开启debug,开发 ...

  3. 微信分享次数统计、微信公众号分享关注统计

    作为系列文章的第五篇,本文重点探讨数据采集层中的微信分享追踪系统.微信分享,早已成为移动互联网运营的主要方向之一,以Web H5页面(下面称之为微信海报)为载体,利用微信庞大的好友关系进行传播,实现宣 ...

  4. 教程:微信公众号的链接如何提取出来?非常简单!

    很多人都在苦恼微信公众号的链接怎样提取出来?并且可以点击链接直接进入公众号内容页面,以查看历史文章并关注. 其实方法特别简单! 下面我们就来做详细介绍,一共分为两部分:第一部分内容是提取公众号链接,第 ...

  5. 小麦苗微信公众号文章链接地址

    小麦苗微信公众号文章链接地址 小麦苗的微信公众号文章链接地址 201609 发布日期 文章标题 链接地址 2016-09-30 2016-09-29 2016-09-28 2016-09-27 201 ...

  6. 微信公众号分享问题总结

    文章目录 前言 微信公众号分享问题总结 微信的一些其他问题 结束 前言 -time:2020/11/18 第一次写博客,以后准备在解决一些问题的时候,写在博客里,方便自己寻找 这篇就 总结一些微信公众 ...

  7. (第三方平台)开发相关,解除80端口占用,微信公众号分享jssdk实现,微信开放平台登录接口接入,2022微信分享接入本地调试,微信分享定制

    一.开发相关 1.平台地址 微信开放平台 QQ互联平台SDK 2.文章收集 来自CSDN兄台的QQ登录使用的教程 微信网站应用开发的详细流程和引导 VueJs单页应用实现微信网页授权及微信分享功能 [ ...

  8. 微信公众号分享网页注意点

    最近自己要做微信分享的防封,就研究一下市面做的分享防封原理,基本分流防封是一个做法. 过程讲述: 通过一个微信公众号分享一个入口,记住这个分享内容网页的内容最好一点违规的都没有,标题和图片可以带有诱导 ...

  9. 禁用微信公众号复制链接

    禁用微信分享 记录一个奇怪的需求需要禁用微信公众号复制链接 但是跳转a 链接后会失效 但是可以解决 if (typeof WeixinJSBridge == "undefined" ...

最新文章

  1. vue 获取url地址的参数_2020年 vue常见面试问题总结(干货)!
  2. coroutine php_PHP 协程实现
  3. 插入始终是1_OneNote使用小记(1)——针对PPT做笔记及最合适的PPT插入方式
  4. sqlite事务模型、性能优化tips、常见误区
  5. PyQt特殊对话框介绍
  6. c语言函数实现strstr,C语言实现strstr函数模拟
  7. rtp发送h264和h265
  8. 如何用Python快速实现区块链?
  9. [转] Vb中FSO 对象的介绍
  10. [渝粤教育] 中国地质大学 计算机组成原理 复习题 (2)
  11. [ZBLOG]国庆巨献-4u-hemingway-Kenshin修改版(2007年11月5日更新)
  12. 表数据查询结果的处理
  13. 用文件流下载文件( Blob)时各种类型文件的 type 整理
  14. Kile 2.1.3 发布,TeX/LaTeX 集成编辑器
  15. 远程服务器证书过期怎么解决,关于演示win7远程桌面证书过期的具体操作方式...
  16. 河南移动AI面试 面经
  17. 蜜雪冰城、茶颜悦色“卷”向咖啡赛道
  18. php bearer token,php-使用CURL设置Bearer令牌的正确方法
  19. zoj 2954 Hanoi Tower(汉诺塔)
  20. iOS开发——项目篇—高仿百思不得姐

热门文章

  1. 老师学python可以干嘛-学 Python 都用来干嘛的?
  2. python 培训-Python培训
  3. python语言用途-Python是万能的编程语言吗?这五大用途很重要!
  4. 学python需要什么基础知识-没学过Python先要学习哪些基础知识?
  5. 廖雪峰python教程视频-为什么看不懂廖雪峰的Python学习教程?
  6. python中的h5py开源库的使用
  7. guava中的Splitter
  8. 题目1189:还是约瑟夫环
  9. Linux配置免密登录
  10. vue 中实现异步加载模块