美文网首页
实现微信分享功能的趟坑之路

实现微信分享功能的趟坑之路

作者: 一个大于号 | 来源:发表于2018-07-21 16:16 被阅读109次

0

下图是一张我们常见的微信分享的效果图片,我们几乎天天都能见到。但是,这个星期我们公司需要自己开发一下微信分享功能的时候,才发现这居然非常复杂。

微信分享

1

因为原始的微信分享链接的效果是这样的,没有图片,没有描述文字,只有一个标题和一段链接。

老板觉得难看,所以我们就需要去实现第一张图中的类似的效果。

原始的微信分享的效果

2

既然别人都成实现这个看上去很“简单”的功能,我们自然也要想办法做出来。第一个想法自然是立刻去别人的成功案例。

在搜索引擎上搜索了一番,找到了一篇解释的十分全面的文章——手把手带你使用JS-SDK自定义微信分享效果 - 归零back - 博客园

于是我们就对照着文章中的方法一步一步去实现。

3

详细的过程就不说了,这篇文章中写的很详细了。我就总结一下“微信分享”这个功能的实现步骤和坑吧。

实现的步骤其实倒不复杂:

  • 从申请的公众平台的账号中找到appId、绑定的域名等。这算是准备工作。
  • 在前端的页面中引入实现微信分享的官方的js文件。
  • 向在公众号中配置的服务器域名发送请求,获取当前网页的签名。
  • 在服务器端用发送请求的页面、时间戳、随机数生成网页的签名,返回给前端页面。
  • 微信的服务器比对页面收到的签名和微信服务器的签名是否一致。一致的情况下,前端页面调用微信官方的js文件的函数触发微信分享时修改图片和描述文字的函数。

4

看步骤的描述似乎并不复杂,但是难点着实很多。

  • 发生分享动作的页面必须要在公众平台中绑定的域名中进行签名,但是绑定的服务器往往都是线上运行的服务器,所以需要通过花生壳网站的内网穿透工具实现。
  • 但是实际操作中,花生壳似乎也不管用了。好在已经有前人的代码可以借鉴,跌跌撞撞,总算是签名完成了。
  • 前端的页面中收到的服务器中返回的签名,微信官方检测说无效。只好拿到官方的检测页面比对,结果是正确的签名。
  • 几经对比,发现需要分享的页面是需要用代码动态获取的,即使自己知道链接也不能直接写在代码中。

5

本来微信分享看上去是个很简单的功能,但是微信出于安全的考虑,做了非常多的限制。而我们作为傍着微信这棵大树而生的小草必须要严格按照他们的限制去编写代码。

很多时候,做一个功能出来很快。但是为了安全的考虑添加的种种保护和限制所需要做的工作会是前者的好几倍。

相关文章

  • 实现微信分享功能的趟坑之路

    0 下图是一张我们常见的微信分享的效果图片,我们几乎天天都能见到。但是,这个星期我们公司需要自己开发一下微信分享功...

  • PHP实现微信退款功能

    HP实现微信退款功能最近在调微信退款接口,发现有许多坑,更大家分享一下 ① 要是在测试的时候,网页提示 curl ...

  • Cordova打包vue项目为app:页面里面简单的分享页面给微

    页面里面简单的分享页面给微信好友功能:前端部分是下面的代码,结合Cordova插件实现微信分享功能。

  • 微信分享——ios和安卓机制居然不一样!

    之前分享过一篇转载的微信分享填坑文章 基本涵盖了微信分享功能开发的基本操作。 实际项目中,在做微信分享追踪的时候,...

  • 【转载】微信分享填坑指南

    11月17日更新微信分享ios和安卓的区别 转载自 微信分享填坑指南 准备工作 如果想要是使用微信的分享功能,需要...

  • 分享pdf文件到微信

    1 点击分享按钮,分享pdf文件到微信 做此功能首先遇到的坑是pdf分享到微信,在微信中打开,无法查看刚刚生成的p...

  • 微信支付相关问题解决网址

    ios微信支付开发遇到的问题 微信支付趟过的坑

  • iOS开发 - 语音播报功能的实现

    近期项目中有个需求就是要实现类似微信或者支付宝的收款时的语音播报功能,于是笔者就开始了漫长的踩坑之路。 一、最初的...

  • 2021-05-12

    微信分享跳转2次,微信分享跳转微信正在连接,分享微信没反应 这几天搞微信分享,还是有一些坑在里面的,记录踩过的坑;...

  • 微信公众号开发

    采用 TP5 + vue 实现如下功能 微信登录微信分享微信支付 微信登录 前端输入参数跳转 前端获取code码 ...

网友评论

      本文标题:实现微信分享功能的趟坑之路

      本文链接:https://www.haomeiwen.com/subject/gpbhmftx.html