H5页面微信分享流程和实现(uni-app)

适用场景:

通过uni-app实现的H5页面分享功能。
要求链接必须在微信端内打开。手机上浏览器打开无效。


流程描述:

第一步安装js-sdk。

方式一:NPM安装方式

npm install jweixin-module --save

方式二:下载使用方式。(本人用的就是这种)
在 uniapp 中可以使用模块方式引用微信 js-sdk ,微信官网直接下载的使用有问题。
下载地址:https://unpkg.com/jweixin-module@1.6.0/lib/index.js

 //npm安装的引用
var jweixin = require('jweixin-module')
//自己下载根据路径引用
var jweixin = require('../../common/jweixin-module')

第二步需要转发页面添加代码。

this.$u.api.wxshareApi是封装好的请求数据的接口。surl是地址用于后端请求微信签名,具体操作交给后端。我们这边可以给他传递surl,也可以让后端用项目在网上的根域名直接请求。
以下代码是我修改后的,原来代码地址:https://ask.dcloud.net.cn/article/36284

//引入资源
var jweixin = require('../../common/jweixin-module')
export default {
	data() {
		return {
			wxsharetip:false
		}
	},
	methods: {
		wxshare(item){
			//#ifdef H5
			//据说可以解决URL中带参数的问题,前台用的js编码,后台php解码 
			//var surl = encodeURIComponent(window.location.href.split('#')[0]); 
			this.$u.api.wxshareApi({
				//url:surl
			}).then(res => {
				jweixin.config({
					debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。  
					appId: res.data.appId, // 必填,公众号的唯一标识  
					timestamp: res.data.timestamp, // 必填,生成签名的时间戳  
					nonceStr: res.data.nonceStr, // 必填,生成签名的随机串  
					signature: res.data.signature, // 必填,签名,见附录1  
					surl: res.data.surl, //自己添加的,debug为true的时候可以网页打印出对应的URL是否正确  
					jsApiList: ["updateAppMessageShareData", "updateTimelineShareData"]  
				}); 
				 jweixin.ready(()=> {
				 //自定义“分享给朋友”及“分享到QQ”按钮的分享内容(1.4.0)  
                       jweixin.updateAppMessageShareData({  
                           title: '标题', // 分享标题  
                           desc: "描述内容", // 分享描述  
                           link: "链接", // 分享链接  
                           imgUrl: '显示图片', // 分享图标                                
                           success: res => { 
                           	//点击分享时提示用户分享图,
							this.wxsharetip = true
				 	    },  
                           cancel: function() {  
                               // 用户取消分享后执行的回调函数  
                           }  
                       });  
                       //自定义“分享到朋友圈”及“分享到QQ空间”按钮的分享内容(1.4.0)  
                       jweixin.updateTimelineShareData({  
                           title: '标题', // 分享标题                                  
                           link: '链接', // 分享链接  
                           imgUrl: '显示图片', // 分享图标                                
                           success: res => { 
                           	//点击分享时提示用户分享图,
							this.wxsharetip = true
				 	    }, 
                           cancel: function() {  
                               // 用户取消分享后执行的回调函数  
                           }  
                       }); 
				 }) 
			})
			//#endif
		}
	}
}

具体流程展示。

在我的项目中现在页面引用js-sdk文件,当用户点击分享时,将要分享的数据标题,描述,图片传递到wxshare()中。通过wxsharetip这个变量提示用户分享图是否显示,this.wxsharetip = true。
步骤一:点击分享

在这里插入图片描述
步骤二:提示用户点击三个点那个按钮。
提示图片UI还没有出图,先凑合着看看

在这里插入图片描述

步骤三:用户自己选择分享好友还是朋友圈
在这里插入图片描述

步骤四:最终结果展示在这里插入图片描述

需要注意:

1:后端请求微信加密的地址,一定要和项目放置的地址域名一致。
2:这里功能只适用于H5页面,且用户在微信内打开,在浏览器打开无效。
3:分享的链接和加密的地址需要同一域名

  • 2
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
uni-app实现 H5 静默微信授权,你可以按照以下步骤进行操作: 1. 首先,确保你已经在微信公众平台上注册了你的应用,并获取到了 AppID。 2. 在 uni-app 项目中的 `main.js` 文件中引入微信 JS-SDK: ```javascript import wx from 'weixin-js-sdk' Vue.prototype.$wx = wx ``` 3. 创建一个 `wechat.js` 文件,用于封装微信 JS-SDK 的相关操作,例如: ```javascript import wx from 'weixin-js-sdk' export function initWechatConfig() { // 向后端请求获取微信配置信息 // ... // 初始化微信 JS-SDK wx.config({ debug: false, appId: '', // 你的 AppID timestamp: '', // 后端返回的时间戳 nonceStr: '', // 后端返回的随机字符串 signature: '', // 后端返回的签名 jsApiList: ['checkJsApi', 'login', 'getUserInfo'] // 需要使用的微信 API }) } export function login() { return new Promise((resolve, reject) => { wx.ready(() => { wx.login({ success: res => { if (res.code) { // 将 code 发送到后端服务器进行处理,获取用户信息 // ... resolve(res.code) } else { reject(new Error('微信登录失败')) } }, fail: err => { reject(err) } }) }) }) } export function getUserInfo() { return new Promise((resolve, reject) => { wx.ready(() => { wx.getUserInfo({ success: res => { // 获取到用户信息,进行处理 // ... resolve(res.userInfo) }, fail: err => { reject(err) } }) }) }) } ``` 4. 在需要授权的页面中,调用 `initWechatConfig()` 方法初始化微信 JS-SDK 配置,在需要获取用户信息的地方调用 `login()` 方法进行登录,并在登录成功后再调用 `getUserInfo()` 方法获取用户信息。 5. 根据获取到的用户信息进行业务逻辑处理。 通过以上步骤,你可以在 uni-app H5实现静默微信授权。请注意,具体的实现细节可能会因为你的业务逻辑和后端实现而有所不同。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

静的小白菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值