本文档介绍了如何在UniApp开发中实现将链接分享到微信好友,并确保在分享时显示标题和缩略图的方法。

背景

第一次用uniapp开发H5页面,发现分享给微信好友的链接,不显示标题和缩略图

步骤一:安装插件

首先,在项目根目录下的命令行中执行以下命令:

  1. npm install weixin-js-sdk

这将在您的项目中添加weixin-js-sdk插件。

步骤二:配置AppID

在使用微信分享功能之前,您需要配置您的AppID,timestamp,nonceStr,signature

步骤三:编写分享代码

接下来,在您想要触发分享操作的页面或组件中,添加一个按钮或其他交互元素,并为其绑定一个点击事件。例如,在某个按钮的点击事件中,可以使用以下代码来触发分享操作:

  1. import wx from 'weixin-js-sdk'
  2. import requestUtils from '@/http/request.js'
  3. import requsetApi from '@/api/home'
  4. // 发起获取signature请求
  5. function getSignature() {
  6. var url = window.location.origin + '/'
  7. requsetApi.signature({
  8. url
  9. }).then(res => {
  10. if (res.code === 200) {
  11. setShare(res.data)
  12. }
  13. })
  14. }
  15. // 设置分享数据
  16. function setShare(signature) {
  17. var url = window.location.origin + '/'
  18. requestUtils.uni_setStorageSync('signature', JSON.stringify(signature))
  19. wx.config({
  20. debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
  21. // 配置微信 JSSDK
  22. appId: signature.appId, // 必填,公众号的唯一标识
  23. timestamp: signature.timestamp, // 必填,生成签名的时间戳
  24. nonceStr: signature.nonceStr, // 必填,生成签名的随机串
  25. signature: signature.signature, // 必填,签名
  26. jsApiList: ['updateAppMessageShareData', 'updateTimelineShareData']
  27. })
  28. wx.ready(function() {
  29. console.log('这是分享功能')
  30. wx.updateAppMessageShareData({
  31. imgUrl: 'https://xxx.com/static/ai.png', // 分享图标
  32. title: 'AI', // 分享标题
  33. link: url, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
  34. desc: '生活工作神器', // 分享描述
  35. success: function() {
  36. console.log('我来分享了')
  37. }
  38. })
  39. wx.updateTimelineShareData({
  40. desc: '生活工作神器', // 分享描述
  41. title: 'AI', // 分享标题
  42. link: url, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
  43. imgUrl: 'https://xxx/static/ai.png', // 分享图标
  44. success: function() {
  45. console.log('我来分享了')
  46. }
  47. })
  48. })
  49. wx.error((res) => {
  50. console.log(res)
  51. // config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
  52. // getSignature()
  53. })
  54. }
  55. //分享
  56. export default function share() {
  57. const _signature = requestUtils.uni_getStorageSync('signature')
  58. // 先看看缓存里有没有
  59. if (_signature) {
  60. let signature = JSON.parse(_signature)
  61. // 获取当前时间戳
  62. var now = parseInt(new Date().getTime() / 1000) + ''
  63. // 计算两个时间戳之间的差值,单位为秒
  64. var diff = now - signature.expire_time
  65. // 判断差值是否大于2小时的秒数,即7200秒
  66. if (diff > 7200) {
  67. console.log('时间戳已经超过两小时。')
  68. getSignature()
  69. } else {
  70. console.log('时间戳未超过两小时。')
  71. setShare(signature)
  72. }
  73. } else {
  74. getSignature()
  75. }
  76. }

在上述代码中,我们触发分享操作。您可以根据需要自定义分享的标题、摘要、链接和缩略图等内容。

步骤四:测试分享功能

完成以上步骤后,您可以重新编译并运行您的UniApp项目,并在H5中测试分享功能。当您点击触发分享的按钮时,微信将会弹出分享界面,并显示您设置的标题和缩略图。

请确保您的微信公众平台已经配置了合适的权限和域名白名单,以便正常进行分享操作。

结论

通过按照本文档中的步骤,在UniApp开发中实现将链接分享到微信好友,并显示标题和缩略图是相对简单而有效的。

在我开发完这个功能后,发现官方有个提供,UNI-APP 开发微信公众号(H5)JSSDK 的使用方式 - DCloud问答

不确定好不好使,感兴趣的可以通过这个链接试一试。

uniapp开发H5,分享链接到微信好友,显示标题和缩略图的更多相关文章

  1. 微信内无法自动跳转外部浏览器打开H5分享链接的解决办法

    很多情况下我们用微信分享转发H5链接的时候,都无法在微信内打开,即使开始能打开,过一段时间就会被拦截,拦截后再打开微信会提示 “已停止访问该网址” ,那么导致这个情况的因素有哪些呢,主要有以下四点 1 ...

  2. 解析分享链接在微信内转发防封API接口的实现原理

    域名被微信封了怎么办?相信这是很多做微信的朋友的疑惑,本人也是做防封的,特此写一篇文章,写给域名被微信封的.被秒封的朋友来看.简单个大家讲一下防封原理和实现方式. 域名拦截因素 我们先来了解一下域名为 ...

  3. [h5+api]移动app开发用到的微信好友,朋友圈,qq好友,新浪微博分享合集

    适用H5+环境,能够使用plus方法的移动app中 /** * Created by HBuilder. * User: tyx * Date: 2018-11-21 * Time: 17:28:51 ...

  4. H5微信自定义分享链接(设置标题+简介+图片)

    起源:最近公司在做招募广告的html5页面,然后做出来后,产品提出一个问题,需要分享出去的链接是卡片形式,内容也要自己定义,这下就难到我了,因为是第一次遇到这种需求,果断百度,然而,我就像大家一样,看 ...

  5. 解决h5网页微信分享链接不能显示缩略

    <script type="text/javascript" src="http://res.wx.qq.com/open/js/jweixin-1.2.0.js& ...

  6. h5网页在微信里打开 右上角分享到微信好友或者朋友圈

    首先你需要一个分享接口地址,然后在自定义图片 标题 描述 如下: <script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js& ...

  7. H5分享到微信好友朋友圈QQ好友QQ空间微博二维码

    这是分享按钮: <button onclick="call()">通用分享</button> <button onclick="call(' ...

  8. Swift - 发送消息(文本,图片,文件等)给微信好友或分享到朋友圈

    通过调用微信提供的API接口,我们可以很方便的在应用中发送消息给微信好友,或者分享到朋友圈.在微信开发平台(https://open.weixin.qq.com)里,提供了详细的说明文档和样例.但由于 ...

  9. H5+ 分享到微信、朋友圈代码示例

    h5+分享到微信.朋友圈代码示例 在使用分享功能的时候会莫名的分享失败,debug时发现是图片过大的问题. 图片过大时ios平台上返回错误码-8,安卓上返回错误码-3(我测试是这样) 因此如果第一次分 ...

  10. 使用uView UI+UniApp开发微信小程序

    在前面随笔的介绍中,我们已经为各种框架,已经准备了Web API.Winform端.Bootstrap-Vue的公司动态网站前端.Vue&Element的管理前端等内容,基本都是基于Web A ...

随机推荐

  1. 【漏洞分析】ReflectionToken BEVO代币攻击事件分析

    前言 BEVO代币是一种Reflection Token(反射型代币),并且拥有通缩的特性.关于Reflection Token更为详细的说明可参考这篇文章.然后目前浏览到的很多分析报告没有指出其漏洞 ...

  2. 2023-03-25:若两个正整数的和为素数,则这两个正整数称之为“素数伴侣“。 给定N(偶数)个正整数中挑选出若干对,组成“素数伴侣“, 例如有4个正整数:2,5,6,13, 如果将5和6分为一组的

    2023-03-25:若两个正整数的和为素数,则这两个正整数称之为"素数伴侣". 给定N(偶数)个正整数中挑选出若干对,组成"素数伴侣", 例如有4个正整数:2 ...

  3. 2020-11-12:java中as-if-serial语义和happen-before语义有什么区别?

    福哥答案2020-11-12: as-if-serial语义单线程执行结果不被改变.happen-before语义正确同步的多线程执行结果不被改变.***这道题网上已经说烂了,就不必重复了.[happ ...

  4. 2022-07-06:以下go语言代码是否会panic?A:会;B:不会。 package main import “C“ func main() { var ch chan struct

    2022-07-06:以下go语言代码是否会panic?A:会:B:不会. package main import "C" func main() { var ch chan st ...

  5. Selenium - 元素等待(2) - 显式等待/EC等待

    Selenium - 元素等待 显式等待 显式等待是一种灵活的等待方式,需要声明等待的结束条件,当满足条件时会自动结束等待: 需要引入WebDriverWait包以及exception_conditi ...

  6. 避坑版-OpenSSH 用户名枚举漏洞(CVE-2018-15473)

    介绍: OpenSSH 7.7前存在一个用户名枚举漏洞,通过该漏洞,攻击者可以判断某个用户名是否存在于目标主机中,在复现过程中遇到了很多坑,这里我就把遇到坑和解决方法告诉大家!!! 漏洞环境: 靶机: ...

  7. 天下苦 Spring 久矣,Solon v2.2.20 发布

    Solon 是什么框架? 一个,Java 新的生态型应用开发框架.它从零开始构建,有自己的标准规范与开放生态.与其他框架相比,它解决了两个重要的痛点:启动慢,费资源. 解决痛点? 由于Solon Be ...

  8. Gitlab Registries

    在项目开发和部署过程中,我们常常需要一套私有仓库,比如 Code Repository.Package Repository,Docker Registry 等. Code Repository:在 ...

  9. 【LeetCode滑动窗口专题#2】无重复字符的最长子串

    #1传送门 无重复字符的最长子串 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: s = "abcabcbb" 输出: 3 解释: 因为 ...

  10. 自研API 网关 - 媲美美团这套Shepherd网关架构!

    作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 我说:"很多互联网大厂,很少基于 SpringMVC 模块对外提供 WEB 服务的 ...