vue 微信分享

2023-11-12

场景:一个h5界面要求点击右上角三个点后点击微信好友分享带标题和图片给好友。vue项目中,分享携带头部标题、简介和缩略图等信息。

1、下载微信的 weixin-js-sdk

npm install weixin-js-sdk

2、在需要分享的页面引入

import wx from 'weixin-js-sdk'; // 引入wxjs
import { shares } from '@/api/index'; // 分享的接口  传给后端一个地址(与域名一致)

3、在methods写调用的方法

// vue调用微信的自定义分享
    getShareInfo() {
       this.save = {
          url: location.href.split('#')[0] // 只需要传当前页面地址
        };
      shares(this.save).then(res => {
        const config = res.data;
        wx.config({
          appId: config.appId,  // appID 公众号的唯一标识
          timestamp: config.timestamp, // 生成签名的时间戳
          nonceStr: config.nonceStr, //  生成签名的随机串
          signature: config.signature, // 生成的签名
          jsApiList: [
            'updateAppMessageShareData', // 分享到朋友
            'updateTimelineShareData', // 分享到朋友圈
          ]
        });

        wx.ready(() => {
          var shareData = {
            title: '王者归来-王者突破特训营',
            desc: '帮助青铜早日登上王者之路',
            link: https://www.baidu.com/, // 分享后的地址
            imgUrl:
              '分享出去的图片地址'
          };
          //点击要去分享
          wx.updateAppMessageShareData(shareData);
          wx.updateTimelineShareData(shareData);
        });
      });
    }

4、在 mounted 中调用分享的方法

mounted() {
    this.getShareInfo(); // 调用分享的事件
},

5、判断微信浏览器打开

分享的时候要去判断是否是微信浏览器打开,如果不是要提示不能分享。

var broser = window.navigator.userAgent.toLowerCase();
  //通过正则表达式匹配broser 中是否含有MicroMessenger字符串
  if (broser.match(/MicroMessenger/i) == 'micromessenger') {
    console.log('微信浏览器');
    // this.weixin();
    this.showContent = true;
  } else {
    this.$toast.warn('请使用微信浏览器打开');
  }

重要说明:注意h5分享是使用微信浏览器右上角的三个点进行分享的,在点击右上角之前要先注入config/ready,官网已说明。自定义“分享给朋友”及“分享到QQ”按钮的分享内容(1.4.0)*需在用户可能点击分享按钮前就先调用。

wx.ready(function () {   //需在用户可能点击分享按钮前就先调用
  wx.updateAppMessageShareData({ 
    title: '', // 分享标题
    desc: '', // 分享描述
    link: '', // 分享链接,该链接域名或路径必须与当前页面对应的公众号 JS 安全域名一致
    imgUrl: '', // 分享图标
    success: function () {
      // 设置成功
    }
  })
});

扩展知识点:

//使用后端拿到的数据配置wxconfig
 wx.config({
  debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
  appId: res.appId, // 必填,公众号的唯一标识,填自己的!
  timestamp: res.timestamp, // 必填,生成签名的时间戳,刚才接口拿到的数据
  nonceStr: res.nonceStr, // 必填,生成签名的随机串
  signature: res.signature, // 必填,签名,见附录1
  jsApiList: [
   'onMenuShareTimeline',
   'onMenuShareAppMessage'
  ]
 });


wx.ready(function () { //如果wx.config配置正常,会自动走此处
    console.log('ready执行完毕')
    //自定义“分享给朋友”及“分享到QQ”按钮的分享内容
    wx.updateAppMessageShareData({
      title: option.shareTitle,//分享的标题
      desc: option.shareDesc,//分享的描述信息
      link: option.shareUrl,//分享的url
      imgUrl: option.shareImg//分享的图片
    });
    //自定义“分享到朋友圈”及“分享到QQ空间”按钮的分
    wx.updateTimelineShareData({
      title: option.shareTitle,
      desc: option.shareDesc,
      link: option.shareUrl,
      imgUrl: option.shareImg,
    });
 });

出处:Vue项目-开启 “ 微信分享踩坑” 之旅-vue项目实现微信分享页面 (51cto.com)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vue 微信分享 的相关文章

随机推荐

  • 指定GPU运行python程序

    一 命令行运行python程序时 1 首先查看哪些GPU空闲 nvidia smi显示当前GPU使用情况 nvidia smi 2 然后指定空闲的GPU运行python程序 CUDA VISIBLE DEVICES 0 2 3 python
  • Python Intro - ipdb debug install

    1 build and install setuptools 1 1 download setuptools setuptools 15 0 tar gz 1 2 unzip setuptools tar xf setuptools 15
  • DFX分析 包括DFM等

    DFX 面向产品生命周期各个环节的设计 可制造 可装配 可靠性 可服务 可测试等等 DFX基于并行设计的思想 在产品的概念设计和详细设计阶段就综合考虑到制造过程中的工艺要求 测试要求和组装合理性 同时还考虑到维修要求 售后服务要求和可靠性要
  • 快手小铃铛跳转微信扫描技术多少钱教学

    快手小铃铛跳转微信扫描技术多少钱教学 快手小铃铛 快手小铃铛跳转微信 小铃铛跳转微信 宝贝 平台上的变现方案你都有参加吗 光合计划手气福袋拉新活动 我以前都跟大家分享了一下 今天介绍一下磁力精英小铃铛的变现 这也是一项大的变现 点来看 这是
  • /sys/module 模块信息与 /proc/modules

    看到一篇关于 proc moduels 以及 sys module 相关介绍 转载一下 http linux chinaunix net techdoc system 2008 07 18 1018163 shtml 在编译模块的时候 如果
  • 浅析如何设计一个亿级网关

    1 背景 1 1 什么是API网关 API网关可以看做系统与外界联通的入口 我们可以在网关进行处理一些非业务逻辑的逻辑 比如权限验证 监控 缓存 请求路由等等 1 2 为什么需要API网关 RPC协议转成HTTP 由于在内部开发中我们都是以
  • letax报错“ I can't write on file `***.pdf”

    问题 运行时代码报错 原因 是我打开了生成的所生成的pdf文档了 关闭文档和其所在的文件夹 重新运行 一切正常
  • 【软考-中级】系统集成项目管理工程师【总】

    网站 https bm ruankao org cn sign welcome 持续更新中 学习目标 完成2023上半年 软件中考任务 目标23年5月 考试前 完成 相关知识点学习 和练习 核心 十五至尊图 上面图是考试的核心 需要背下来
  • 眼保健操(UPWND公益版)保护眼睛

    眼保健操 UPWND公益版 新版六节眼保健操 请跟随音乐口令节奏做操 每节均有具体图文示范 网络时代 专家建议每使用电脑1小时 请休息5分钟 共分六节 第一节 按揉攒竹穴 第二节 按压睛明穴 第三节 按揉四白穴 第四节 按揉太阳穴 刮上眼眶
  • 浅谈RAID写惩罚(Write Penalty)与解决方案闪存荷尔蒙(FlashHormone)

    浅谈RAID写惩罚 Write Penalty 与解决方案闪存荷尔蒙 FlashHormone 介绍 通常在讨论不同RAID保护类型的性能的时候 结论都会是RAID 1提供比较好的读写性能 RAID 5读性能不错 但是写入性能就不如RAID
  • 一文了解 Python 中的生成器

    前言 生成器很容易实现 但却不容易理解 生成器也可用于创建迭代器 但生成器可以用于一次返回一个可迭代的集合中一个元素 现在来看一个例子 def yrange n i 0 while i lt n yield i i 1 每次执行 yield
  • 力扣刷题笔记 数组能形成多少数对

    代码如下 from collections import defaultdict class Solution def numberOfPairs self nums List int gt List int a defaultdict i
  • caffe-include caffe/caffe/hpp 出错

    文章目录 include include
  • C# 操作JSON的几种方式

    关于Json数据在开发中的重要性 自然不言而喻 本篇通过两种在c 中常用的方式来实现对Json数据的序列化和反序列化 为了实现大多数的需求 我们采用稍微复杂一点的数据模型 首先我们有以下json数据 name 张三 age 20 idCar
  • Unity Shader入门精要第四章:学习Shader 所需的数学基础--坐标空间

    Unity系列文章目录 文章目录 Unity系列文章目录 前言 一 4 6 1 为什么要使用这么多不同的坐标空间 二 4 6 3 顶点的坐标空间变换过程 4 6 4 模型空间 4 6 6 观察空间 4 6 7 裁剪空间 总结 法线变换 参考
  • python中index方法_Python中的index()方法使用教程

    Python中的index 方法使用教程 index 方法确定字符串str 如果起始索引beg和结束索引end在末尾给出了找到字符串或字符串的一个子串 这个方法与find 方法一样 只是如果没有找到子符趾会抛出一个异常 语法 以下是inde
  • 阿里SR Gateway:IDLE_TIMEOUT:Websocket session is idle for too long time

    阿里SR在10秒内无数据流输入 SR会自动断开 sdk本身在请求建立链接后 长时间没有发送任何数据 超过10s后 服务端会返回40000004错误信息 Gateway IDLE TIMEOUT Websocket session is id
  • C++ list 类学习笔记

    双向循环链表list list是双向循环链表 每一个元素都知道前面一个元素和后面一个元素 在STL中 list和vector一样 是两个常被使用的容器 和vector不一样的是 list不支持对元素的任意存取 list中提供的成员函数与ve
  • windows cmd命令整理

    文章目录 windows 路由表 命令行设置环境变量 windows cmd 查看文件内容 类似linux cat type file name txt cmd 切换用户 类似 linux su user name runas user u
  • vue 微信分享

    场景 一个h5界面要求点击右上角三个点后点击微信好友分享带标题和图片给好友 vue项目中 分享携带头部标题 简介和缩略图等信息 1 下载微信的 weixin js sdk npm install weixin js sdk 2 在需要分享的