VUE2.0 如何实现微信网页的分享

跟微信开发环境集成真是个苦差事,今天实现了网页的微信分享机制,坑比较多,写一写,大家方便避坑:

【1】先声明一点,微信认证之后才能开启这个功能,不管你接口显示是否已获得,没通过微信认证肯定分享不了

 【2】网页引入sdk包,可以动态引入,也可以直接写在index.html中,按自己需要来

【3】实现JS-SDK签名,这里有2个服务器缓存机制,一是token缓存,一是jsapi_ticket缓存,这里封装好一个服务器API,开放给前端调用即可,我这里实现的函数是initWXJSSDKConfigInfo,可以根据我的url返回签名。

我的例子里,用了appId做入参,不安全,可以用其它替换机制,这个函数返回完整的认证信息:

 微信开发环境提供了验证包,如果有问题,请先确保这里的签名是正确的。

【4】接下来是挂设函数锚点,包括wx.config、wx.ready、以及updateAppMessageShareData(转发给朋友)等函数,注意这里有个调用顺序,实现时务必注意:

wx.config拿签名信息去注册,成功后会调用wx.read的函数链,大致格式如下:

wx.ready(function() {


            const {title,desc,link,imgUrl} = wxShareConfig;

            wx.ready(function () {   //需在用户可能点击分享按钮前就先调用

                wx.updateAppMessageShareData({

                  title, // 分享标题

                  desc, // 分享描述

                  link, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致

                  imgUrl, // 分享图标

                  success: function () {

             
                  }

                })

              });

             

             

              wx.ready(function () {      //需在用户可能点击分享按钮前就先调用

                wx.updateTimelineShareData({

                  title, // 分享标题

                  link, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致

                  imgUrl, // 分享图标

                  success: function () {

                    // 设置成功

                  }

                })

              });

        });

详情可参见我的链接VUE 2.0 微信网页共享组件

【5】挂载和使用

 

【6】常见问题

1- 网上教程里有对authUrl做encodeUriComponent处理的,在我的这个例子里出错了,大家这个问题注意一下

2- 涉及到微信网页调试,微信调试环境大家可以用微信开发工具

 

希望能提供一些参考,大家少走弯路。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
Vue项目中使用微信OAuth2.0授权登录,可以通过以下步骤实现: 1. 在微信公众平台或开放平台中申请应用,并获取到appID和appSecret。 2. 在Vue项目中安装wechat-oauth模块,该模块提供了微信OAuth2.0的相关接口。 ``` npm install wechat-oauth ``` 3. 在Vue项目的后端服务器中,编写一个处理微信OAuth2.0授权登录的回调接口,并在该接口中调用wechat-oauth模块提供的接口,实现用户授权登录。 ``` const OAuth = require('wechat-oauth'); const client = new OAuth(appId, appSecret); // 获取授权地址并重定向到该地址 router.get('/wechat/login', async (ctx, next) => { const redirectUrl = client.getAuthorizeURL( 'http://your-redirect-url', '', 'snsapi_userinfo' ); ctx.redirect(redirectUrl); }); // 处理授权回调 router.get('/wechat/callback', async (ctx, next) => { const code = ctx.query.code; const token = await client.getAccessToken(code); const openid = token.data.openid; const userInfo = await client.getUser(openid); // TODO: 处理用户信息 }); ``` 4. 在Vue项目中,提供一个“使用微信登录”的按钮,点击该按钮时,重定向到后端服务器中的授权接口,实现用户授权登录。 ``` <template> <div> <button @click="loginWithWechat">使用微信登录</button> </div> </template> <script> export default { methods: { loginWithWechat() { window.location.href = 'http://your-server/wechat/login'; } } } </script> ``` 需要注意的是,使用微信OAuth2.0授权登录,需要用户在微信客户端中进行操作,因此需要在移动端或微信公众号中使用。同时,需要在微信公众平台或开放平台中配置授权回调地址,并保证该地址可以被访问到。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小小IT流

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

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

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

打赏作者

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

抵扣说明:

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

余额充值