js使用微信分享功能

2023-05-16

在使用微信分享(包括微信api里的其他方法)之前,需要有一些准备、比如要准备 appId、timestamp、nonceStr、signature 这四个数据,只有在有这四个字段后,我们才可以去使用微信的一些方法和功能,
但这些东西是不能写死的,得是活的,所以就麻烦后端同学配合了一下,将数据帮忙生成了一下,但在调研阶段还是使用的手动生成,生成后他把得到的这几个字段发给我,我拿到后放到对应的位置就可以了。但是在开发的时候,这个就要改成一个接口,通过ajax给我返回这些我需要的数据,当接口返回的数据被放到下面代码中放的字段位置后,如果不报错,就说明是ok的了。

准备工作代码:

 wx.config({
         debug: false, // 为true时,就是调试模式,会弹出一些信息,正确、错误都会弹。
         appId: ''xxxxxxxxx'', // 必填,公众号的唯一标识
         timestamp: ''1537372373'', // 必填,生成签名的时间戳
         nonceStr: ''sjwufnskfnskjfhjksfkjsfkjshfwk'', // 必填,生成签名的随机串
         signature: " 1ejsjsdjffklj0dj3uds3h3e",// 必填,签名,
         // 必填,把要使用的方法名放到这个数组中。
         jsApiList: [
               'onMenuShareTimeline',
               'onMenuShareAppMessage',
               'onMenuShareQQ',
               'onMenuShareQZone'
         ]
 });

这里需要注意的是,signature这个字段一定要生成正确,不然的话,就会报signature无效,就没法使用微信方法了,这个签名的生成需要根据当前页面url去生成,所以,一定要保证url的正确。

微信分享开放的几个方法有:分享给朋友、分享到朋友圈、分享到QQ、分享到QQ空间这四个方法,其他的暂时没有开放。

如何自定义分享内容呢?

wx.ready(function(){
     wx.checkJsApi({
              jsApiList: [
                    'onMenuShareTimeline',
                    'onMenuShareAppMessage',
                    'onMenuShareQQ',
                    'onMenuShareQZone'
              ],
              success: function (res) { 
                        // alert(JSON.stringify(res));
              }
      });
}

这里是校验jsApiList的,如果可以使用,就会弹出xxxx:true这种提示,说明是可以使用这些方法的。

 // 分享到朋友圈
wx.onMenuShareTimeline({
         title:"宏远时代体育", // 分享标题
         link:'', // 分享链接
         imgUrl:"xxxxxxxxx",
         success: function (res) {
         },
         cancel: function (res) {
         },
         fail: function (res) {
             // alert(JSON.stringify(res));
         }
 });
// 分享给朋友
wx.onMenuShareAppMessage({
        title:"宏远时代体育", // 分享标题
        desc:'第一届SuperBA宏超篮球联赛,快来关注吧!', // 分享描述
        link:'', // 分享链接
        imgUrl: "xxxxxxxxxxxxxxx", // 分享图标
        type: '', // 分享类型,music、video或link,不填默认为link
        dataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空
        success: function () {
                // 用户确认分享后执行的回调函数
        },
       cancel: function () {
             // 用户取消分享后执行的回调函数
       }
});
 // 分享到QQ
wx.onMenuShareQQ({
          title: "宏远时代体育", // 分享标题
          desc: '第一届SuperBA宏超篮球联赛,快来关注吧!', // 分享描述
          link: '', // 分享链接
          imgUrl: "xxxxxxxxxxxxxxx", // 分享图标
          success: function () {
               // 用户确认分享后执行的回调函数
          },
         cancel: function () {
              // 用户取消分享后执行的回调函数
        }
  });
 // 分享到QQ空间
wx.onMenuShareQZone({
           title: "宏远时代体育", // 分享标题
           desc: '第一届SuperBA宏超篮球联赛,快来关注吧!', // 分享描述
           link: '', // 分享链接
           imgUrl: "xxxxxxxxxxxxxxx", // 分享图标
           success: function () {
                 // 用户确认分享后执行的回调函数
           },
           cancel: function () {
                 // 用户取消分享后执行的回调函数
           }
  });

以上四个就是目前微信开放的几个分享方法,都有一个共同点,就是可以自定义title、图片等字段,区别是分享给朋友、qq、qq空间的时候,可以自定义分享描述,但是分享到朋友圈是没有这个字段的, 这个没有自定义分享的链接,因为分享的就是当前页面,如果写了自定义链接以后,就无法二次分享了,因为这个链接写死的话,分享出去的地址,微信会默认增加参数,分别是fom(分享到哪里)和isappinstalled(代表用户是否安装了app)。

除了签名那块的问题之外,需要注意的几个问题:
1、苹果手机分享出去的时候,是有isappinstalled参数的,但是安卓手机分享出去,就只有form字段,没有isappinstalled字段的。
这个问题是因为我们有个需求,就是要区分是不是分享出去的链接,如果是,就显示个东西,当时开发测试时,只用了苹果手机去测,所以链接里面是两个参数都有,写了个判断就是有form并且有isappinstalled,后来在安卓上测试时,并没有执行这个判断里要执行的程序,就看了一下分享链接,果然没有isappinstalled,所以以后使用的时候要注意一下这一点。
2、分享到qq的时候,有时候是不会有自定义的图片的,他会默认去显示该公众号的二维码,这里也需要注意下。
3、一定要注意的是,微信公众号一定一定要配置js安全域名,否则分享是有问题的。比如自定义的一些内容无法显示。

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

js使用微信分享功能 的相关文章

  • Vxworks 学习(一)介绍

    Vxworks 学习 xff08 一 xff09 介绍 该系列文章是我根据多个博主以及相关书上内容整理的学习笔记 xff0c 许多内容非原创 实时操作系统 定义 实时操作系统 xff08 Real Time Operating System
  • 8-Cython依赖Visual Studio

    文章目录 前言一 vs 2015安装提示错误二 使用步骤1 下载安装vs高版本版本 二 环境配置三 测试模块编译安装四 测试Cython 前言 前面再crypto用于加解密时使用2005版本提供编译支撑 xff1b 最近2005编译环境安装
  • MongoDB的特点及概念

    MongoDB 的特点及概念 MongoDB 是一个介于关系数据库和非关系数据库之间的产品 xff0c 是非关系数据库当中功能最丰富 xff0c 最像关系数据库的 它是一个基于分布式文件存储的开源数据库系统 在高负载的情况下 xff0c 添
  • 【四足机器人】强化学习实现minitaur运动控制(决策模型篇)

    文章目录 模型概要1 状态 决策空间 xff08 略 xff09 2 奖励函数3 决策模型 模型概要 1 状态 决策空间 xff08 略 xff09 状态空间 xff1a roll xff08 X轴 xff09 pitch xff08 Y轴
  • 解决windows下安装Anaconda后python pip不可用的情况

    在windows系统下通过安装Anaconda的方式安装的python使用中发现不能再通过pip安装python包 只能通过conda install packname 的方法 xff0c 导致很多conda不支持的包无法安装 我遇到的事d
  • Spring-为什么要使用Spring?为什么要使用依赖注入(DI)?

    为什么要使用Spring xff1f 使用Spring框架最主要的原因是为了简化Java开发 xff08 大多数框架都是为了简化开发 xff09 xff0c 它帮我们封装了很多完善的功能 xff0c 而且Spring的生态圈非常的庞大 基于
  • Shell Limits设置问题导致用户不能登录

    故障现象 前几天 xff0c 突然间某数据库主机不能su切换到grid用户 发生故障的环境为 xff1a RHEL 6 7 xff0c ORACLE 11gR2 RAC xff0c 其中集群节点1发生此故障 xff0c 而节点2状态正常 故
  • shell脚本通过ftp获取文件

    shell脚本通过ftp获取文件 span class token comment usr bin bash span span class token comment T 1日期 span day 61 96 date span clas
  • 将EditPlus添加到右键菜单中

    将EditPlus添加到右键菜单中 一 以管理员权限打开打开Edit Plus 二 工具 gt 配置用户工具 三 点击常规选项选中左侧将EditPlus添加到右键快捷菜单中 四 选中一个文件 xff0c 右键就可以看到了
  • windows安装jdk

    windows安装jdk 一 xff1a 下载地址 xff0c 可下载自己需要的版本 https www oracle com technetwork java javase downloads jdk8 downloads 2133151
  • VMware共享本机网络

    VMware共享本机网络 一 设置桥接模式 xff1a 左上角菜单栏 gt 虚拟机 gt 设置 gt 网络适配器 xff08 如图操作 xff09 二 编辑虚拟网络 左上角菜单栏 gt 编辑 gt 虚拟网络编 xff08 如图操作 xff0
  • vim设置行号

    vim设置行号 方法一 xff1a 临时 或者 方法二 xff1a 当前用户永久 1 修改vim配置文件vimrc vim vimrc 输入 xff1a set number 或 set nu 保存退出 方法三 所有用户 1 vim etc
  • tomcat 配置https

    一 生成证书 1 使用jdk自带的keytool ext生成证书 xff0c 进入jdk下bin目录 xff1b 2 在路径栏输入cmd 回车打开dos命令窗口 xff0c 打开之后当前路径为jdk下bin目录 ps xff1a 也可直接w
  • Google http测试工具

    一 下载 xff1a 下载地址 xff1a https pan baidu com s 16mCI0QUn z0kNPX4yqGEWg 提取码 xff1a sgiz 二 配置 1 解压文件 2 在Google里配置插件 xff0c 或者叫扩
  • linux mysql 离线安装

    一 下载 1 官网地址 https dev mysql com downloads mysql 点击Archives 选择需要的版本 点击Download 进行下载 xff0c 如需要登录自行注册登录 将下载的安装包上传至linux系统 2
  • cmd介绍及常用命令

    cmd介绍 cmd基本概念 cmd commander xff0c 命令提示符是在操作系统中 xff0c 提示进行命令输入的一种工作提示符 在不同的操作系统环境下 xff0c 命令提示符各不相同 在windows环境下 xff0c 命令行程
  • 计算机的发展史

    计算机的发展史 计算机的前身 1642年的时候 xff0c 一位19岁的法国小伙设计并制作了一台能自动进位的加减法计算装置 xff0c 一开始是只能算加法的 xff0c 所以叫 加法器 后来慢慢改良 xff0c 可以做加减乘除的四则运算 x
  • 利用Radiogroup Radiobutton 实现滑动效果菜单

    第一次在满世界大侠的地方撰写博客 xff0c 所以不免紧张 xff0c 怕自己写出让人消掉大牙的文章 本着学习的态度 xff0c 最后我还是决定把自己的学习感想记录下来 首先我要感谢一个哥们 xff0c 大部分的内容都是他的杰作 xff0c
  • 一、初识VUE

    一 什么是vuejs VUE是一个渐进式的框架 xff0c 什么是渐进式呢 xff1f 渐进式意味着可以将vue作为应用的一部分 xff0c 嵌入应用 也就是说 xff0c 在一个整体项目中 xff0c 部分可用jQuery xff0c 部

随机推荐

  • Linux目录概述

    一 概述 由于开发linux发行版的社区或这企业太多 xff0c 如过每个Linux发行版的目录结构都不相同 那么在管理和使用上会造成很多困扰 xff0c 所以就有了FHS Filesystem Hierarchy Standard 的出现
  • ls与cp命令详解

    一 文件与目录检视 ls a xff1a 全部的文件 xff0c 连同隐藏文件 xff08 开头为 的文件 xff09 一起列出来 xff08 常用 xff09 A xff1a 全部的文件 xff0c 连同隐藏文件 xff0c 但不包括 与
  • linux 安装JDK

    一 下载JDK 版本 xff1a jdk 8u191 linux x64 tar gz 链接 xff1a https pan baidu com s 1w9HpHBRPHCfoiEpGSKJqXA 提取码 xff1a whya 二 安装 创
  • java调用DLL之jna

    一 添加maven依赖 span class token comment lt https mvnrepository com artifact net java dev jna jna gt span span class token t
  • 三、vue :定义变量、v-for、v-on示例

    一 vue定义变量 let xff1a 定义变量const xff1a 定义常量 contst定义常量时 xff0c 必须赋值 指向的对象不可改变 xff0c 但是对象中的属性 contst obj 61 name 39 张三 39 obj
  • 二、vue插值操作

    一 Mustache mustache语法就是两个大括号 34 34 mastache语法不仅直接可以写值 xff0c 也可以写一些简单的表达式 span class token tag span class token tag span
  • 二、vue中v-bind使用

    一 v bind基本使用 一个页面中 xff0c 除了标签内容需要动态绑定外 xff0c 标签的属性也需要动态绑定 xff0c 例如 xff1a a元素的href属性和img元素的src属性 这时就需要用到v bind了 span clas
  • 四、vue计算属性的使用

    通常 xff0c 在模板中可直接通过插值语法显示data中的属性 xff0c 但是在某些情况 xff0c 需要将某些数据进行转化后显示或者将多个数据结合起来显示 计算属性的基本使用 span class token tag span cla
  • firewall-cmd 端口管理

    1 开放端口 firewall span class token operator span cmd span class token operator span zone 61 public span class token operat
  • BIND 高级特性(二)-- 动态更新(转)

    BIND 高级特性 xff08 二 xff09 xff0d xff0d 动态更新 转 64 more 64 在很多大的网络中为了简化维护量 xff0c 都使用了DHCP来动态分配IP地址 这样就要求DNS也能够动态的添加和删除记录 BIND
  • Vue内置指令——v-show

    v show的用法与v if类似 xff0c 不同的是带有 v show 的元素始终会被渲染并保留在 DOM 中 v show 只是简单地切换元素的 CSS 属性 display span class token doctype span
  • QtCreator按顺序编译多个子项目

    QtCreator按顺序编译多个子项目 0 环境1 创建子项目2 创建SubProjectSln的子项目3 三个项目内容3 1 Dll3 2 Lib3 3 UiApp 4 构建 0 环境 Qt5 3 2 mingw482 32 1 创建子项
  • windows与wsl互相访问

    找出能与WSL2连接的那个IP 启动WSL2 xff0c 键入如下命令 xff1a span class token function cat span etc resolv conf 如 xff1a nameserver 172 27 1
  • 平衡树的深度与最少结点数问题

    对于一棵平衡树 xff0c 如果以NhNh表示深度为h时含有的最少结点数 有如下的规律 xff1a N0 61 0 N1 61 1 N2 61 2 Nh 61 Nh 1 43 Nh 2 43 1 这里研究的是最小结点数 xff0c 最多结点
  • ubuntu报错记录:bash:XXX.sh权限不够统一解决办法

    在Ubuntu上执行提示如下报错时 xff1a bash xxx sh权限不够 其中的xxx表示报错文件名 解决办法 span class token function sudo span span class token function
  • Ubuntu 修改中文字体教程

    刚刚开始使用Ubuntu xff0c 在终端代码里可以看到奇奇怪怪丑陋的中文字体 xff0c 怎么换成更好看的中文字体呢 看了很多教程都是通过修改终端字体来实现 xff0c 但这样就不能使用自己想要的英文字体了 xff0c 比如我使用 So
  • STM32接口FSMC与FMC控制 XXROM

    FMC是STM32F429 439专有的 xff0c 因为驱动SDRAM时需要定时刷新 xff0c 而FSMC存在于F1和F4中我们常用的芯片中 他们的全称为 xff1a Flexible static memory controller
  • springcloud通过nacos整合seata遇到的问题

    1 配置完成后 xff0c 启动seata server服务器 xff0c 注册到nacos xff0c 启动client后访问接口 xff0c 报错如下 xff1a io seata common exception FrameworkE
  • mysql和redis双写一致性策略分析

    mysql和redis双写一致性策略分析 一 什么是双写一致性 当我们更新了mysql中的数据后也可以同时保证redis中的数据同步更新 xff1b 数据读取的流程 xff1a 1 读取redis 如果value 61 null 直接返回
  • js使用微信分享功能

    在使用微信分享 包括微信api里的其他方法 之前 xff0c 需要有一些准备 比如要准备 appId timestamp nonceStr signature 这四个数据 xff0c 只有在有这四个字段后 xff0c 我们才可以去使用微信的