VUE项目引入微信JSSDK 实现微信自定义分享

uni-app在vue3中对接微信JSSDK import wx from "weixin-js-sdk",挂载到全局app.config.globalProperties.$wx=wx;第三步:获取JSSDK在网页中的授权信息及初始化JSSDK,授权信息是后台发返回的。在项目的终运行命令:npm i weixin-js-sdk 如下图。在APP.vue里面调用getWxSignature。第二步,在项目人口文件导入微信jssdk。第一步:引入jssdk。 阅读详情

VUE项目引入微信JSSDK 实现自定义分享

前端vue、后端php

问题:后端获取config参数所需的url 需要和请求自定义分享页面url一致

一、微信公众号后台添加 js安全域名(白名单)

二、(前端) VUE引入微信JSSDK

1、yarn add weixin-js-sdk或者npm install weixin-js-sdk --save-dev
2、封装wx分享功能
在asset中新建wx.js

import axios from "axios";
import wx from 'weixin-js-sdk';
//初始化微信sdk
const wxShowMenu = shareData => {
    return new Promise((resolve, reject) => {
        axios
            .get("******") //请求你们公司后台的接口 获取相关的配置
            .then(
                res => {
                    var getMsg = res.data;
                    // console.log("微信配置----------")
                    wx.config({
                        debug: false, //生产环境需要关闭debug模式  测试环境下可以设置为true 可以在开发者工具中查看问题
                        appId: getMsg.appId, //appId通过微信服务号后台查看
                        timestamp: getMsg.timestamp, //生成签名的时间戳
                        nonceStr: getMsg.nonceStr, //生成签名的随机字符串
                        signature: getMsg.signature, //签名
                        jsApiList: [ //需要调用的JS接口列表
                            "updateAppMessageShareData", //自定义“分享给朋友”及“分享到QQ”按钮的分享内容(1.4.0) 新接口
                            "updateTimelineShareData", //自定义“分享到朋友圈”及“分享到QQ空间”按钮的分享内容(1.4.0) 老接口
                            "onMenuShareTimeline", //分享到朋友圈 老接口
                            "onMenuShareAppMessage",//分享给盆友 老接口
                        ]
                    });
                    wx.error(function (res) {
                        //alert(JSON.stringify(res))
                        console.log(res)
                        // config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
                    });
                    wx.ready(function () {
                        wx.onMenuShareAppMessage({
                            title: shareData.tTitle,
                            link: shareData.timeLineLink,
                            imgUrl: shareData.imgUrl,
                            desc: shareData.tContent,
                            success: function () { }
                        });
                        wx.onMenuShareQQ({
                            title: shareData.tTitle,
                            link: shareData.timeLineLink,
                            imgUrl: shareData.imgUrl,
                            desc: shareData.tContent,
                            success: function () { }
                        });
                        wx.onMenuShareTimeline({
                            title: shareData.tTitle,
                            link: shareData.timeLineLink,
                            imgUrl: shareData.imgUrl,
                            success: function () { }
                        });
                    });
                    resolve(res);
                },
                err => {
                    reject(err);
                }
            );
    });
};
export { wxShowMenu };

3、在要使用自定义分享的页面中引入wx.js,并自定义分享内容

	import { wxShowMenu } from "../assets/wx";
	
	//初始化分享信息
    wxShareInfo(data) {
      var vm = this;
      var shareData = {
        imgUrl: data.share_info.pic, //域名在白名单中
        timeLineLink:data.share_info.url,//域名在白名单中
        tTitle: data.share_info.title,
        tContent: data.share_info.content
      };
      //调用初始化方法
      wxShowMenu(shareData).then(
        res => {
          console.log(res);
        },
        err => {
          console.log(err);
        }
      );
    },

二、(后端)php生成config参数返回

没有使用前端传当前url的形式,直接获取了request 中的REFERER,一层请求可以。
如果有多层调用还是需要用传url的形式!url是页面完整的url,location.href.split(’#’)[0]为了排除微信自己添加的参数,encodeURIComponent处理后传给后端,后端再解析。

后端api接口

<?php
define("APPID","***");
define("APPSECRET","*****");
include_once('wx_js_sdk_http.php');
$ourl = $_SERVER['HTTP_REFERER'];
$jssdk = new JSSDK(APPID, APPSECRET,$ourl);
$signPackage = $jssdk->getSignPackage();
echo json_encode($signPackage);

wx_js_sdk_http.php之前写过php脚本式的获取方式
只需要修改几处即可

		//添加$Ourl外部传入的请求url
		public function __construct($appId, $appSecret,$Ourl) {
                $this->appId = $appId;
                $this->appSecret = $appSecret;
                $this->Ourl = $Ourl;
        }
        ....
        //修改使用的url为传入的
        //$protocol = $_SERVER['HTTP_X_FORWARDED_PROTO']=='https'? "https://" : "http://";
        //$url = "$protocol$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
        $url = $this->Ourl;
		...

vue 项目中使用微信jssdk自定义分享 vue项目的页面,要在微信中打开的时候能够分享出去的时候自定义。没有自定义,使用微信默认的分享,显示的是内容都是默认的页面标题和链接,图片部分一般也是灰色的。使用微信的jssdk可以自定义这些内容。 1.安装 vue项目是用vue-cli搭建的,首先安装插件。插件名字是weixin-js-sdk,有的是用npm的方法安装,我是使用vue ui出来的视图化窗口上操作安装的(vue-cli3版本可以让之前用命令运行项目安装插件等在视图化的窗口上操作,更便捷,直接点击按钮操作。) 使用视图化操作方法是:在命 阅读详情

相关推荐

Vue中动态生成微信分享链接和分享文字

在微信网页开发中,如果需要在不同的页面,每次分享出去的信息都是动态的不同的,就是动态的链接或者标题、描述、图片等信息,可以通过vue的导航守卫来实现 一、在vue中需要引入微信jssdk 配置安全域名(参考官方文档) 引入微信的js文件,vue中可以直接npm安装也可以 npm install weixin-js-sdk --save 并在main.js中引入js: import ...

第一行代码 3408

vue 项目引入微信jssdk

一、导入依赖包 npm i -S weixin-js-sdk 二、前端页面使用 import wx from 'weixin-js-sdk' export default { created() { let param = { debug: true, url: 'http://localhost:8081/productgroups', ...

Github.com/liangfengbo 3768

uniapp jssdk 微信分享

h5的微信分享与小程序分享不同,在微信h5中不允许存在按钮点击分享,只能通过右上角···进行分享,默认微信浏览器是可以分享的,那么我们为什么还要做分享呢? 因为默认的分享没有图片、标题与描述,所以我们只需要在用户分享前,执行一遍代码,再分享,就能显示图片标题啥的了 1.下载jssdk (打开项目根目录执行) npm install weixin-js-sdk 2.新建common文件夹与common/wxShare.js文件 我这里是将下载好的 jweixin-1.6.0.js文件复制到commo.

一个普通且勤奋的bug开发师 1604

VUE项目引入微信JSSDK 使用微信api

第一个接口 是初始化 ssdk的。第二个接口 是调用微信支付的。

weixin_54397440的博客 2267

Arduino应用——PWM控制直流电机风扇

Arduino应用——PWM控制直流电机风扇PWM原理实验器件功能描述如何改变文本的样式插入链接与图片实现代码生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 最近在使用arduino UNO开发板完成课程小作业。其中一个要求设计一个电风扇控制系统,要求能够通过PWM调节风扇的转速。期间搜索了许多例程和方法,但受限于器件,效果不

hypecycle的博客 2万+

浙大数值分析lab2

最可怕的一道题,题目是这样的 Root of a Polynomial A polynomial of degree nnn has the common form as p(x)=cnxn+cn−1xn−1+⋯+c1x+c0p(x)=c_n x^n + c_{n-1} x^{n-1} + \cdots + c_1 x + c_0p(x)=c​n​​x​n​​+c​n−1​​x​

yao_zou的博客 4793

vue引入微信jssdk,完美实现

1.安装SDK npm install weixin-js-sdk --save 2.微信分享的封装工具类(wxShare.js) /* eslint-disable */ import Vue from 'vue'; import wx from 'weixin-js-sdk'; //存储服务器授权链接 const jsSDKAuth = 'XXX/wx_jssign_package.json'; //存储各个链接的签名信息 const signMap = new Map(); // 设置默

吾娱生活的专栏 1万+

CANoe开发入门到精通读书笔记(2)——CAPL编程

CAPL函数的语法跟C语言很类似,但也包含一些C语言所不具备的功能大部分CAPL支持的数据类型都可以直接声明为函数参数, 例如,整型、浮点型、枚举、结构、定时器以及它们的引用。但有一些类型不能被直接声明,而需要加上*号(注意该符号并不是C语言中 指针的意思)。例 如 : signal * s 、 envvarInt * ev 、 sysvarFloat * sv 、 diagRequest * dr、diagResponse * dr、int matrix[][],以及。

weixin_66275497的博客 6457

vue实现微信分享朋友圈和朋友功能

vue实现微信分享朋友圈和朋友功能 需要认证的公众号,在其后台添加一个安全域名,安全域名用于微信的验证,登录后可在“开发者中心”查看对应的接口权限。 开发文档:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html 具体使用步骤 一、引用JSSDK 1.在需要调用JS接口的页面引入如下JS文件,(支持ht...

_Delete的博客 4037

基于R语言的DICE模型实践技术应用;预测不同减排路径下的经济增长、碳排放量、气候变化程度以及社会福利变化

DICE模型是一个动态综合气候经济模型,由诺贝尔经济学奖得主William Nordhaus开发,用于评估气候变化对经济的影响以及不同减排政策的经济成本和效益。以下是一个关于DICE模型在气候变化影响评估中的实际应用案例,结合R语言代码进行讲解。

KY_chenzhao的博客 866

YOLO26涨点改进 | 损失函数改进篇 | 引入SlideLoss,适配尺度变化+遮挡+难易样本不平衡,手把手配置+实战案例

COCO-Hard是COCO数据集的复杂场景子集,包含80个类别,重点筛选多尺度、遮挡密集样本,其中小尺度目标(<32×32像素)占比42%,大尺度目标(>128×128像素)占比28%,遮挡目标占比57%,场景涵盖人群密集、车流拥堵、复杂工业环境,完美模拟真实复杂检测场景,适合验证SlideLoss的适配性。

qq_36130719的博客 157

VUX 微信 JSSDK 插件(WechatPlugin)集成指南:在 Vue 应用中使用微信 JSSDK

本文介绍 VUX 项目内置的 `WechatPlugin` 插件,它把官方微信 JSSDK(`wx` 对象)以 CommonJS 模块的形式封装进 Vue 生态,让你在 Vue 应用中无需手动在 `index.html` 引入脚本即可使用分享、支付等微信原生能力。读完本文,你将掌握插件的引入方式、组件外/组件内的两种调用姿势、与 `AjaxPlugin` 配合完成 `wx.config` 签名的完

gitblog_00865的博客 971

(SEED-Lab)Buffer Overflow Vulnerability Lab缓冲区溢出实验

(SEED-Lab)Buffer Overflow Vulnerability Lab 欢迎大家访问我的GitHub博客 https://lunan0320.cn 文章目录一、实验目的二、实验步骤与结果2.1 环境初始化2.2 Task1 运行shellcode2.3漏洞程序2.4 Task 22.5 Task 3: ASLR2.6 Task 4: Stack Guard2.7 Task 5:不可执行栈三、参考文献 一、实验目的 理解缓冲区溢出攻击的原理以及如何实施攻击 理解针对缓冲区溢出的防御措施

lunan的博客 8980

vue的H5项目实现微信分享给好友和朋友圈自定义缩略图显示内容和图标

遇到的问题(三) 接上篇文章的项目。在做完所有的页面后,后端小伙伴初步实现了微信分享,但是分享后缩略图是酱紫的: 最初的效果缩略图图标是一个回形针,内容是页面的title,我不想要这种效果,想实现下面那种图标和内容都可以自定义的效果,还有一点,我还想自定义每个页面(因为本项目有多个页面)分享后的URL(即点击分享缩略打开指定页面)。调用微信的接口时,遇到了这么几个问题: 1、微信的签名问题:“e...

BigFamer的博客 3784

【模型】OpenClaw 接入阿里云永久免费模型方案

Qwen2.5-7B-Instruct 模型为例。

海兰 4469

C#串口通信从入门到精通(7)——整数/浮点数与二进制、八进制、十六进制之间的转换与C#实现

本文详细介绍由博主开发的DataConvert串口通信帮助类的用法,该帮助类涵盖了串口通信领域所有的数据转换方法,帮助大家快速编写串口通信程序!

qq_34059233的博客 2878

uniapp中使用微信jssdk

在做自定义分享时,用到了微信jssdk,记录一下。 声明:本文演示uniapp中使用jssdk,示例为网页自定义分享 npm方式使用下方指令进行安装,正文部分为非npm方式。 npminstalljweixin-module--save 1、下载导入jssdk文件 下载链接:https://www.lanzous.com/i8ujkvi 下载后放在项目中,具体放置位置可自...

niceyoo的博客 9567

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

vue调用微信jssdk,引用分享接口

首先安装jssdk npm install weixin-js-sdk --save-dev 然后在新建一个公共的js文件,比如share.js 在share.js中引入weixin-js-sdk import wx from 'weixin-js-sdk'; 在调用微信的接口之前要先获取他们的appid,timestamp,nonceStr等授权参数,传递参数为当前的url ...

impossible1994727的博客 1万+

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

vue获取微信登陆权限_Vue获取微信JSSDK授权,以及微信分享

场景Vue获取JSSDK授权以便在微信浏览器,或者嵌在小程序里面做些小事情,如朋友/朋友圈分享,微信支付,图片上传下载等步骤一 配置安全域名:在微信公众平台对应的公众号设置里面配上相应的JS接口安全域名(开发者需要有对应的权限)步骤二 引入JS文件:在需要调用接口的页面引入JS文件,我直接使用npm包'jweixin-module'(npm install --save jweixin-modul...

weixin_39950083的博客 717

Vue项目通过JSSDK调用微信分享接口

最近在做一个公司微信分享项目的功能,毕竟第一次做,对于小白也是个挑战,特此记录一下自己的开发过程,以便以后查阅。(转载请标明出处,码字好辛苦的qaq) 使用步骤:   1.绑定域名:   一开始当然是去查微信公众平台的文档啦,因为公众号账号密码什么的是在产品手上的,而且要配域名也是现网的域名,所以没法自测,步骤一中的绑定域名就跳过了。   2.引入JS文件:   我在百度上看大...

weixin_30760895的博客 924

JSSDK公众号微信分享功能

VUE + JSSDK 微信分享功能 ; 公众号使用微信分享功能

codingLeader的博客 4234

Vue开发微信公众号调用微信JS-SDK的分享接口(实现微信公众号分享功能)

描述 使用微信提供的分享功能,其实就是JSSDK使用,使用它提供的接口功能。 可以先看下微信公众号开发文档,上面介绍的很详细。提供了那些功能,怎么去使用。 https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#67 代码 绑定域名这个不需要说了。 引入js文件的话直接在Vue项目中找到index.html...

闲云野鸟的博客 1965

vue 如何调用微信分享_Vue项目通过JSSDK调用微信分享接口

最近在做一个公司微信分享项目的功能,毕竟第一次做,对于小白也是个挑战,特此记录一下自己的开发过程,以便以后查阅。(转载请标明出处,码字好辛苦的qaq)使用步骤:1.绑定域名:一开始当然是去查微信公众平台的文档啦,因为公众号账号密码什么的是在产品手上的,而且要配域名也是现网的域名,所以没法自测,步骤一中的绑定域名就跳过了。2.引入JS文件:我在百度上看大部分人都是使用Npm install weix...

weixin_39819974的博客 795

wechat.js终极指南:如何在微信网页开发中轻松实现分享与交互功能

微信网页开发总是让你头疼吗?面对微信JSSDK复杂的API和不统一的接口,很多开发者感到无从下手。wechat.js正是为解决这一痛点而生的轻量级JavaScript库,它封装了微信原生JSSDK接口,为你提供简洁易用的API,让你在微信网页开发中游刃有余。无论你是新手还是经验丰富的开发者,掌握wechat.js都能让你的开发效率提升数倍。 ## 📱 为什么微信网页开发需要wechat.js?

gitblog_00100的博客 823

vue 分享微信传参_vue实现微信分享朋友圈,发送朋友的示例讲解

首先下载微信jssdk引入项目中,这里我就不说怎么去安装了,如果不会的可以看一下npm教程和es6的教程。第一步,引入微信jssdk,此处我是通过下载微信jssdk,然后用webpack引入进项目的。第二步,获取详情数据,渲染页面。第三步,获取详情数据成功后再获取微信签名,token等配置信息。第四步,通过api配置所想要的功能代码:{{details.videoLabel}}{{details....

weixin_39826809的博客 376
上一篇: php Redis操作类
下一篇: 使用vue-video-player 方法 视频全铺满以及过程中遇到的问题
阿……莫西林
博客等级 码龄9年 42粉丝 111原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值