JSSDK公众号微信分享功能

微信公众平台支持前端网页,点击右上角的‘...’,可以选择分享到朋友圈、分享给好友、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" : "分享说明"
}
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
微信小程序公众号H5分享卡片是指在微信公众号平台上,通过小程序或H5页面来创建可分享的卡片。这种分享卡片可以包含各种信息,如标题、描述、图片、链接等,用于吸引用户点击并进入小程序或H5页面。 在微信小程序中,我们可以通过设置小程序的分享参数来生成分享卡片。开发者可以在小程序的代码中,通过调用相关API来设置分享标题、描述和图片等信息,当用户点击分享按钮时,系统会自动根据设置生成分享卡片供用户分享到朋友圈、好友等渠道。 而在微信公众号的H5页面中,我们可以使用微信提供的JSSDK来实现分享功能。开发者可以在H5页面中引入微信提供的JSSDK的使用,在页面加载完成后,通过调用相关API来设置分享标题、描述和图片等信息。当用户点击分享按钮时,系统会调用微信的接口生成分享卡片供用户分享。 通过微信小程序公众号H5分享卡片,用户可以将自己喜欢的小程序或H5页面分享给朋友,让朋友也能够体验到这些应用的功能。而对于开发者来说,分享功能可以增加应用的曝光度和用户量,提高用户参与度和用户粘性。 总之,微信小程序公众号H5分享卡片是一种方便快捷地实现小程序或H5页面分享功能的方式,能够帮助用户分享他们感兴趣的内容,也能够帮助开发者提升应用的影响力和用户数量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值