欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

uni 微信h5 使用jssdk 调用分享 扫码功能

程序员文章站 2024-01-24 19:10:52
...

首先安装jssdk
uni 微信h5 使用jssdk 调用分享 扫码功能
调用微信的功能 主要是初始化jssdk 当然也要保证实在微信浏览器中

判断是在微信中

isWechat: function() {
	var ua = window.navigator.userAgent.toLowerCase();
	if (ua.match(/micromessenger/i) == 'micromessenger') {
			return true;
		} else {
			return false;
	}
}

jssdk 初始化

请求后台得到config配置的数据
uni 微信h5 使用jssdk 调用分享 扫码功能
jsApiList
uni 微信h5 使用jssdk 调用分享 扫码功能

文档地址 jsApiList.

	//初始化sdk配置  
	initJssdk: function(callback, url) {
		//服务端进行签名 ,可使用uni.request替换。 签名算法请看文档 	
		const path =url.split('#')[0]
		uni.request({
			url: url,
			method: 'POST',
			data: {
				url: path
			},
			success: (res) => {
				jweixin.config({
					debug: false,
					appId: res.data.appId,
					timestamp: res.data.timestamp,
					nonceStr: res.data.nonceStr,
					signature: res.data.signature,
					jsApiList: [
						'checkJsApi',
						'updateTimelineShareData',
						'updateAppMessageShareData',
						'scanQRCode'
					]
				});
				//配置完成后,再执行分享等功能  
				if (callback) {
					callback(res.data);
				}
			}
		})
	},

调用分享功能
需要判断是不是在微信中 其次每次都需要重新配置jssdk

uni 微信h5 使用jssdk 调用分享 扫码功能

	//在需要自定义分享的页面中调用  
	share: function(data, url) {
		url = url ? url : window.location.href;
		if (!this.isWechat()) {
			return;
		}
		//每次都需要重新初始化配置,才可以进行分享  
		this.initJssdk(function(signData) {
			jweixin.ready(function() {
				var shareData = {
					title: ,
					desc: ,
					link: ``,
					imgUrl:,
					success: function(res) {
					},
					cancel: function(res) {
					}
				};
				// //分享给朋友接口  
				jweixin.onMenuShareAppMessage(shareData);
				//分享到朋友圈接口  
				jweixin.updateAppMessageShareData(shareData);
			});
		}, url);
	},

功能的调用都大同小异参照微信的文档

功能的调用.

	//在需要自定义分享的页面中调用
    search: function(data, url) {
		url = url ? url : window.location.href;
		if (!this.isWechat()) {
			return;
		}
		//每次都需要重新初始化配置,才可以进行分享  
		this.initJssdk(function() {
			jweixin.ready(function() {
				// /微信扫一扫接口  
				jweixin.scanQRCode({
				  needResult: 1, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果,
				  scanType: ["qrCode","barCode"], // 
				  success:  (res)=> {
					//得到值
				  }
				});
			});
		}, url);
	}

把这个js文件 定义在common 文件夹中 需要就import
传入你需要的参数

api.share({
						title: '',
						desc: '',
						img: ''
});
相关标签: uni app