JSSDK公众号微信分享功能

微信公众号:weixin-js-sdk使用总结 JS-SDK说明文档 网页授权说明文档 微信公众号授权登录参考方案 1、安装weixin-js-sdk npm install weixin-js-sdk 2、js封装 import wx from 'weixin-js-sdk' // 步骤1、引入微信js-sdk import http from '@/utils/axios.js'; //接口请求封装 // 1、wx.config配置参数 const getWxConfig = async (pageUrl) => { await 阅读详情

微信公众平台支持前端网页,点击右上角的‘...’,可以选择分享到朋友圈、分享给好友、QQ等微信功能。分享我在项目中添加分享到朋友圈,分享好友的功能的实现。即图一所示的效果。实现的效果为图二所示 

                          图一                                       

图二 

先要在项目中引入微信功能的支持文件,即WX的jssdk文件。我在项目中使用的是从外部引入

微信JSSDK,连接在此

1、为了项目整体结构 和 文件便于维护  创建wx.js,将所有wx方法封装

export default function(opts){
	let {config,data,success,cancel} = opts;		
	wx.config({
		debug: false,					//开启调试模式
		appId: config.appId,			//公众号的唯一标识
		timestamp: config.timestamp,	//生成签名的时间戳
		nonceStr: config.nonceStr,		//生成签名的随机串
		signature: config.signature,	//签名
		jsApiList: [ 'onMenuShareTimeline', 'onMenuShareAppMessage','hideMenuItems', 'checkJsApi']	//需要使用的JS接口列表
	});
	wx.ready(function () {
		// 分享到朋友圈
		wx.onMenuShareTimeline({
			title : data.title,		// 分享标题
			link : data.link,		// 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
			imgUrl : data.imgUrl,	// 分享图标
			success : function(res) {
				success && success(res)
			},
			cancel : function(res) {
				cancel && cancel(res)
			},
		});

		// 分享给朋友
		wx.onMenuShareAppMessage({ 
			title : data.title,		// 分享标题
			link : data.link,		// 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
			imgUrl : data.imgUrl,	// 分享图标
			desc : data.desc,		// 描述
			success : function(res) {
				success && success(res)
			},
			cancel : function(res) {
				cancel && cancel(res)
			},
		});
		
		wx.hideMenuItems({
			menuList : [ 'menuItem:editTag', 'menuItem:delete',
				'menuItem:copyUrl', 'menuItem:originPage',
				'menuItem:openWithQQBrowser', 'menuItem:openWithSafari',
				'menuItem:share:email', 'menuItem:share:brand',
				'menuItem:share:qq', 'menuItem:share:weiboApp',
				'menuItem:share:facebook', 'menuItem:share:QZone' ]
		});
	});
}

//是否显示分享
export function showWxShare(is){
	if (typeof WeixinJSBridge == "undefined") {
	    if (document.addEventListener) {
	    	if(is === true){
	    		document.addEventListener('WeixinJSBridgeReady', function(){
	    			WeixinJSBridge.call('showOptionMenu');
	    		}, false);
	    	}else{
	    		document.addEventListener('WeixinJSBridgeReady', function(){
	    			WeixinJSBridge.call('hideOptionMenu');
	    		}, false);
	    	}
	    } else if (document.attachEvent) {
	    	if(is === true){
	    		document.attachEvent('WeixinJSBridgeReady', function(){
	    		 	WeixinJSBridge.call('showOptionMenu');
	    		});
	    		document.attachEvent('onWeixinJSBridgeReady', function(){
	    		 	WeixinJSBridge.call('showOptionMenu');
	    		});
	    	}else{
	    		document.attachEvent('WeixinJSBridgeReady', function(){
	    		 	WeixinJSBridge.call('hideOptionMenu');
	    		});
	    		document.attachEvent('onWeixinJSBridgeReady', function(){
	    		 	WeixinJSBridge.call('hideOptionMenu');
	    		});
	    	}
	    }
	
	} else {
		if(is === true){
	    	WeixinJSBridge.call('showOptionMenu');
	   	}else{
	    	WeixinJSBridge.call('hideOptionMenu');
	    }
	}
}

2、新建处理签名数据的文件sign.js,使用sha1.js中的hex_sha1方法加密

import {hex_sha1} from '../plugins/sha1.js'		//签名
export default function(data){
	var urlN = window.location.href.split('#')[0];
	var timestampn = new Date().getTime().toString();
	var timestamp = timestampn.substring(0, 10);			//生成签名的时间戳
	var nonceStr = Math.random().toString(36).substr(2);	//生成签名的随机串
	var con = `jsapi_ticket=${data.ticket}&noncestr=${nonceStr}&timestamp=${timestamp}&url=${urlN}`
	var signature = hex_sha1(con);		//签名
	//签名处理后参数	
	return {
		appId : data.appId,
		timestamp : timestamp,
		nonceStr : nonceStr,
		signature : signature
	}
}

3、创建share.js,通过接口获取微信签名,对外暴露方法wxShare方法;

import wxShare from '@/wx/wx.js'	//微信支付
import wxSign from '@/wx/sign.js'		//处理签名数据
/**
 * 微信签名
 * @param {Object} params={}
 * @param {String} weixinName	
 */
export function getWxSign({weixinName='xdbx-zs'} = {}) {
	return http.get(`${URI.wx}/api/v1/weixin/get_token`, {params:{weixinName}})
}

export default function(data,signData){
	//先获取签名
	getWxSign(signData).then(res =>{
		if(res.code == 200){
			let config = wxSign({ticket:res.content.ticket,appId:res.content.appid})
			wxShare({
				config : config,
				data : data,
				success : function(res){
				},
				cancel : function(res){
				}
			})
		}
	})
}

4、index.vue页面调用

//index.vue 中调用
import wxShare from '@g/assets/js/wx/share.js'
//微信分享
wxShare(shareData)

//分享文案
shareData:{
    "title" : "分享标题",
	"link" : "分享链接",
	"imgUrl" : "分享小图",
	"desc" : "分享说明"
}
记录微信开发生成测试签名--signature,并使用微信jssdk屏蔽分享 背景:因项目需要,需在公众号跳转h5页面屏蔽分享功能,没有后端配合,需签名、appID,URL等参数,本文将讲解测试环境下,初始化个性测试数据生成和调用jssdk屏蔽分享等; 详细步骤如下: 1、登录微信公众号平台》开发者工具-》公众平台测试帐号,通过绑定测试者微信号,成功后在公众号测试账号页面下会有测试的appID,appSecret,如下图(地址:https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login,直接扫码登录即可) 2、在页面 阅读详情

相关推荐

微信JS-SDK分享功能在分享到朋友圈时无效的解决方法(PHP)

然而,有时候我们可能会遇到一个问题,就是当我们使用微信JS-SDK分享内容到朋友圈时,分享无效,无法正常显示预期的分享内容。微信JS-SDK在分享功能的实现中需要使用签名来验证请求的合法性,如果签名错误,微信服务器将会拒绝分享请求,导致分享无效。通过上述的PHP源代码示例和相关步骤,您可以在自己的网页中实现分享功能,并确保分享到朋友圈的功能正常有效。在实际使用微信JS-SDK进行分享时,我们可以在页面的头部引入微信JS-SDK库,并在需要分享的按钮点击事件中调用。然后,我们指定了需要分享的网页地址。

XtAbap的博客 712

JS-SDK接入以及微信二次分享

如果是 html 的静态页面在前端通过 ajax 将url传到后台签名,前端需要用 js 获取当前页面除去’#‘hash部分的链接(可用location.href.split(’#')[0]获取,而且需要encodeURIComponent),因为页面一旦分享,微信客户端会在你的链接末尾加入其它参数,如果不是动态获取当前链接,将导致分享后的页面签名失败。如果这里获取到的 signature 和你得出的 signature 一致,就证明你的 signature 是正确的。

m0_44973790的博客 3614

ANSYS HFSS 中的相控天线阵列仿真方法

相控天线阵列系统广泛使用,从国防雷达应用到商业 5G 应用。设计这些天线阵列涉及复杂的数学运算,需要全波仿真。Ansys HFSS 全场 3D 电磁仿真软件可以在合理的时间内以较低的计算成本仿真复杂的相控阵天线系统,同时考虑复杂激励、环境(即附近的天线)和平台对其性能的影响。本博客介绍了可用于有效仿真相控天线阵列的不同方法。以下是不同仿真方法的简要概述,视频链接中提供了完整的演示。ANSYS HFSS 提供 4 种不同的相控天线阵列仿真方法:1) 晶胞-无限阵列。

jkh920184196的博客 4246

微信开发相关:使用微信 JS-SDK 接口

通过微信 JS-SDK 接口,可以在自己写的 JS 程序中使用很多微信的功能。例如微信里的卡片式链接、拍照上传下载图片、录制播放上传下载音频、获取地理位置、使用摇一摇、扫一扫、微信支付等功能。

runsong911的博客 8719

DPO(Direct Preference Optimization)实战全流程指南

《DPO实战全流程指南》摘要 本文提供了端到端的DPO(直接偏好优化)实战方案,包含数据准备、模型训练、评估部署全流程。核心内容包括: 数据构建:推荐UltraFeedback等高质量数据集,提供数据预处理代码 训练配置:基于HuggingFace TRL库的DPO实现,详解beta值等关键参数调优 工业优化:显存节省技巧(LoRA、梯度检查点)、领域自适应方法和在线学习架构 效果评估:量化对比显示DPO可降低86%有害回复率,提升24%用户满意度 常见问题:针对灾难性遗忘、过度安全化等问题给出解决方案 附

技术引领业务创新 1466

新硬盘到手,在统信UOS或麒麟系统上怎么认?保姆级教程从识别到挂载一步到位

本文提供新硬盘在统信UOS或麒麟KYLINOS系统上的完整配置指南,从识别物理硬盘到挂载全流程详解。通过终端命令如df和lsblk,帮助用户完成硬盘识别、分区、文件系统创建及挂载配置,确保新硬盘顺利投入使用。

weixin_30698297的博客 441

js微信分享步骤

1、引入文件 <script type="text/javascript" src="https://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script> 2、 // 微信分享 $(function(){ var time=Date.parse(new Date()); var localurl=window.docume...

damanyao的博客 875

基于carsim与Simulink联合仿真的车辆换道轨迹规划与轨迹跟踪模型

PID_反步控制_滑膜控制三种四旋翼无人机轨迹跟踪控制算法仿真 附带对应的说明文档,提供建模过程与仿真结果文献(英文)➕PPT 描述:采用的同一种参考轨迹,都是三维仿真 三种控制方法: [1]PID控制、[2]反步控制、[3]滑膜控制(三个仿真模型) 每个仿真均应用了同一种轨迹路径,直接运行即可出三维图,可以实现四旋翼无人机轨迹的跟踪

2501_90804007的博客 1083

微信公众号分享jssdk.php,微信jssdk分享功能实例教程

前提:调用微信jssdk分享功能,通过微信开发者工具调试,调用正常,无任何报错信息。问题:调用成功,且开发者工具正常显示,但是通过真机调试,分享出去后,自定义内容失效,为微信自动获取的默认内容!截止发稿日:IOS端一切正常(可能IOS端规则还没有变),Android端分享操作正常,自定义内容失效。原因:微信重新调整分享规则:分享地址必须与公众号JS接口安全域名一致。例如:自定义url: ...

weixin_28749363的博客 374

python 爬虫 xpath 存储到数据库

参考

我是张先生 1288

深入AOSP构建系统:从BUILD_FINGERPRINT的生成逻辑,看如何定制你的Android设备标识

本文深入解析AOSP构建系统中的设备指纹生成机制,详细介绍了BUILD_FINGERPRINT的生成逻辑及其在Android设备中的关键作用。通过分析多个指纹属性的区别与联系,以及如何定制设备标识,帮助开发者更好地理解和掌握Android系统构建过程。

weixin_27017211的博客 216

微信公众号 H5 jssdk 分享卡片功能实现(亲测使用)

微信公众号 H5 jssdk 分享卡片功能实现(亲测使用)

阿乐的博客 2899

手把手教你完成YOLOv9 PyQt5目标检测界面搭建,实现图片检测、视频检测、摄像头检测,可用于大论文凑工作量或毕设必备,全网最详细教程

目标检测是计算机视觉中的重要任务,广泛应用于安防监控、自动驾驶、智能家居等领域。YOLO系列模型由于其高效的检测速度和较高的准确率,成为目标检测任务的首选算法之一。本项目结合 YOLOv9与 PyQt5,构建了一个图形化界面,便于用户进行目标检测的操作和展示,实现对图片、视频和摄像头的实时目标检测,不仅可以用于大论文的工作量展示,还可以作为毕业设计。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 2657

微信自带分享功能实现

最近做的微信公众号开发,有个页面是需要分享推广,微信自带的也有转发可是转发出去的效果是网址,这个效果显然不是我们需要的 我们需要下载一下微信jssdk  此处附上链接: 然后建立方法调用jssdk类 function jssdk($info){ include_once("Wechat/JSSDK.class.php"); $jssdk = new JSSDK ($inf

jmkweb的博客 5517

uniapp - 详细解决 H5 网页报错 Uncaught Error: Async component timed out after ? ms.(移动端h5页面白屏或加载缓慢失败,超时报错处理)

uni-app,vue3,网页,h5,移动端,手机H5页面,浏览器,报错,uniapp报错,Asynccomponenttimedoutafter,如何解决这个问题,vue3Asynccomponenttimedoutafter,异步组件超时了怎么办,async,详细解决方案,AsyncComponents异步组件,导致页面打不开了,白屏什么也不显示,网页载入非常慢卡顿,vue3网站报错,超时,nuxt3,详细解决方案,浏览器控制台报错,爆红并且页面卡住了,依旧报错,找不到异步组件的报错

🏆 前端领域优质创作者 3773

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

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

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

闲云野鸟的博客 1965

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

微信公众号分享内容自定义,点击链接可获点击用户的openid

今日在开发微信公众平台,需要用到分享功能。 本来,如果公众号申请的东西都ok了之后,微信打开微信公众号之后是可以实现分享的,但是这个分享其实是微信默认的分享,它只分享网页上的title(title),第一张图片(imgUrl),网站域名(desc)和网址(link)。而我们用到的分享功能需要自己去定义这些参数。 一开始,完全懵逼,完全不知道是怎么一回事。心想,我们怎么能通过网页操作微信呢?因为

u014165193的专栏 1万+

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

uni-app 开发微信公众号(H5)分享 支付 JSSDK 的使用

UNI-APP 开发微信公众号(H5)分享 支付 JSSDK 的使用 什么是微信JSSDK ? 开发微信公众号的嵌入网页。想要拥有在微信浏览器的功能,就必须使用 wx JSSDK 来获取基础能力,从而实现业务。 使用范围 ? 微信公众号的操作,app 、微信小程序 有单独的方法来设置功能,此jssdk 只适用于 微信公众号。 前期准备? 公众号需要申请,申请特定的能力。最重要的是最要做一步参数处理。 流程如下: 网页向java-web请求微信分享,然后通过公众号的appid和secret获.

以后永远的博客 1万+

PHP微信公众号开发(三)JSSDK接口调用-使用与注意事项

将代码放入php环境可直接运行 DEMO页面:http://demo.open.weixin.qq.com/jssdk 【在微信web开发者工具使用或者微信中】 源码下载:http://demo.open.weixin.qq.com/jssdk/sample.zip 【官方例子,不想下载的会在下方贴出】 源码 sample.php jssdk.php jsapi_ticket.php a...

R的博客 1022

java版微信分享功能(支持分享给好友/分享到朋友圈)

点击上方[全栈开发者社区]→右上角[...]→[设为星标⭐]先上官方文档:http://mp.weixin.qq.com/wiki/home/index.html做之前建...

全栈开发者社区 1万+

微信JSSDK使用步骤(用于在微信浏览器中自定义分享,分享到朋友圈,拍照,扫一扫等功能)

一、使用JSSDK需要一个公众号(需要认证!): (1)、把自己项目的服务器地址输入。 (2)、把MP_verify_m7Qp93BAuIGDWRVO.txt 文件下载下来,放到该服务器域名指向的根目录! 这样基础工作就完成了! 二、后台生成前端需要的参数! (1)、前端想要实现分享、扫一扫等等需要的参数! wx.config({ debug: false,//是否开启调试功能,这里关闭! appId: jssdk.appId,//appid...

高先生的猫 9844

java 微信 jssdk 分享朋友圈_JSSDK微信自定义分享朋友圈

背景:15年之前的微信分享只需要加入一段js就可以实现。后来微信官方全部禁止了。现在的微信分享全部得使用jssdk。一、分享功能:在微信内(必须在微信里)打开网站页面,分享给朋友或者分享到朋友圈时,自己可以指定分享的标题、缩略图、描述文字。(还可以把这个分享功能进一步扩展,比如分享后发红包、加积分、统计分享次数,谁分享了之类的功能,这个看个人需求而定。)二、使用条件:1、认证公众号(就是交了300...

weixin_42552261的博客 490

微擎 jssdk php文件,微擎register_jssdk分享到朋友功能无法使用的问题及解决办法

近期在做微信公众号应用开发时发现微擎register_jssdk分享到朋友功能无法使用,当前使用的微擎版本是1.8.2,通过查阅微信公众号官方的相关文档后发现jssdk的分享功能有进行调整。引用官方的话:请注意,原有的 wx.onMenuShareTimeline、wx.onMenuShareAppMessage、wx.onMenuShareQQ、wx.onMenuShareQZone 接口,即将...

weixin_39618169的博客 764

微信jssdk实现分享到微信

本来用的是这个插件http://overtrue.me/share.js/和百度分享 相同之处:在微信分享的时候,分享的链接都不能获取到缩略图。。。 不同之处:百度分享在微信低版本是可以看到缩略图的(但是一点用都没有,不过还是要说一下) 这两个在分享带图片的文章的时候,都是不符合要求的(在这上面耗费了我好多时间,一度让我怀疑人生了。。。) 最后得出的你想要带标题 描述 图片都是完...

aoju0739的博客 102

网页链接分享到微信朋友圈带图标和摘要的完美解决方法

先看效果: 我不喜欢回形针。 以前我仅仅把网页开始的地方放一个不可见的图片,后来发现没有效果。 现在我们开始: 原料:GetwxLink 微信公众号: 、步骤一:绑定域名 先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。 步骤二:引入JS文件 <script src="http://res.wx.qq.com/open/...

wrtwrt6的博客 1822
上一篇: Object 常用方法
下一篇: vant picker 设置text
逩跑鍀小学生
博客等级 码龄5年 37粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值