vue h5 jssdk 微信分享好友和朋友圈

微信分享对于前端还是很简单的, 主要根据文档和后台返回的数据就可以了

1、vue项目中安装weixin-js-sdk (npm install weixin-js-sdk)
2、 方便维护src 下建立weixin 文件夹 , 其下又建立wxsdk.js 进行初始化设置封装

import wx from 'weixin-js-sdk'export default {  /**   *    * @param {*} api  微信公众号api   * @param {*} fn 回调   */   // 分享  setShare(param = {}, callback) {    let registerUrl = window.location.href    // if (isIOS()) {    //     // 只要根路径    //     registerUrl = window.location.origin   '/'    //     console.log(window.location, 'host:')    // }    // 需要encodeURIComponent 不然会有问题(调用你们的接口获取到初始化配置的相关信息)    /**调用你们的接口获取到初始化配置的相关信息----开始---**/    apiList.getGryJsapiSignerToken({        query: {          url: encodeURIComponent(registerUrl)        },        hasLoading: false      }).then(res => {        let {          code,          data        } = res        console.log('请求微信配置成功>>>>', new Date().getTime(), data)        if (Number(code) === 0) {        /**调用你们的接口获取到初始化配置的相关信息----结束---**/          wx.config({            debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。            appId: data.appId, // 必填,公众号的唯一标识            timestamp: data.timestamp, // 必填,生成签名的时间戳            nonceStr: data.nonceStr, // 必填,生成签名的随机串            signature: data.signature, // 必填,签名            jsApiList: [                // 自定义“分享到朋友圈”及“分享到QQ空间”按钮的分享内容(1.4.0)                'updateTimelineShareData',                // 自定义“分享给朋友”及“分享到QQ”按钮的分享内容(1.4.0)                'updateAppMessageShareData',                'hideMenuItems',                'wx-open-launch-weapp'            ], // 必填,需要使用的JS接口列表            openTagList: ['wx-open-launch-weapp'], // 可选,需要使用的开放标签列表,例如['wx-open-launch-app']          })                    wx.ready(function () {            // config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。           console.log('配置成功分享:', param.title, param.imageUrl, param.link, param.desc)            wx.updateTimelineShareData({                title: param.title, // 分享标题                link: param.link, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致                imgUrl: param.imageUrl, // 分享图标                success: function () {                    // 用户确认分享后执行的回调函数                    typeof callback === 'function' && callback()                }            })                // 自定义“分享给朋友”及“分享到QQ”按钮的分享内容(1.4.0)            wx.updateAppMessageShareData({                title: param.title, // 分享标题                desc: param.desc, // 分享描述                link: param.link, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致                imgUrl: param.imageUrl, // 分享图标                success: function () {                    // 用户确认分享后执行的回调函数                    typeof callback === 'function' && callback()                }            })          })          wx.error(function (res) {            console.error(res, '>>>>>>>失败')          })        }      })    },    // 隐藏特定菜单  hideMenu() {    // 要隐藏的菜单项,只能隐藏“传播类”和“保护类”按钮,所有menu项见附录3    wx.hideMenuItems({      menuList: [        "menuItem:share:qq",        "menuItem:copyUrl",        "menuItem:openWithQQBrowser",        "menuItem:openWithSafari",        "menuItem:share:email"      ]    })  }}

3、 在需要调用分享的页面引入wxsdk 文件直接调用setShare 方法传入对应参数就可以了

注意: 全局调用和在单个页面中使用也是一样的方式 区别就在于执行的方法不一样
由于公司项目需要全局配置分享相关所以使用了中间键的方式

import wxJsSdk from 'weixin/wxsdk'import {isWeiXin} from 'utils/tools'// 区别是否是微信环境下的方法export const isWeiXin = function () {    var ua = window.navigator.userAgent.toLowerCase()    const b = ua.match(/MicroMessenger/i)    if (b && b.length > 0) {      return true    } else {      return false    }  }  // 在中间键中的afterEachHandle 方法中全局设置就行了    // 判断是否 微信端 ,定死分享数据   isWeiXin() && wxJsSdk.setShare({     title: '', // 分享标题     desc: '', // 分享描述     link: window.location.href, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致     imageUrl: '', // 分享图标 (https 或者http 不能写本地图片)   })

4、 最后注意点:微信jssdk 配置参数的大小写问题

来源:https://www.icode9.com/content-4-868251.html

(0)

相关推荐

  • NuxtJS快速入门

    服务器端渲染(SSR) 知识储备 ES6 Nodejs Vue React Angular 什么是服务器端渲染 前端渲染:html页面作为静态文件存在,前端请求时后端不对该文件做任何内容上的修改,直接 ...

  • 微信支付之openid获取

    一.说明 如果用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现支付等业务逻辑. 1.网页授权的两种scope的区别 · 以snsapi_base为scop ...

  • 微信发送视频到朋友圈,微信怎么发送大视频文件,微信怎么分享视频链接

    微信发不了大的视频到聊天窗口和朋友圈这些都是众所周知的了,那么我们可以通过别的方法来在朋友圈和聊天窗口发大的视频给朋友们看.这个方法很简单,但是要写出来却是步骤有点多,那么也请大家耐心看完,毕竟网上没 ...

  • 微视联合微信推出30秒朋友圈视频分享,能撼动短视频格局吗?

    30秒朋友圈视频公测,微视能撼动短视频格局吗? 前段时间看到微信解封了快手,可以支持快手分享,以为是腾讯看中了快手需要从资源角度给重磅扶持,然后达到非常好的效果和浏览价值!但是没想到微信给自家的微视支 ...

  • 微信开放小程序朋友圈分享 电商 商家 微商觊觎10亿+流量红利

    导读 7月6日,微信低调发布了小程序测试功能:"小程序分享到朋友圈", 这一新功能,被看作是"重磅利好".此举意味着小程序朋友圈分享在流量高达10亿+的微信生态 ...

  • 微信如何屏蔽好友的朋友圈?

    微信如何屏蔽好友的朋友圈?我们有时候在微信中有一些好友发广告,我们就要屏蔽他的朋友圈,下面就来教大家操作方法. 1.首先我们打开微信,点击通讯录,查找到需要屏蔽的好友. 2.然后点击打开好友界面,点击 ...

  • 我不能无言以对——一个微信好友在朋友圈反对多读书

    这是公众号第448篇原创内容,2019年第79篇. 今天的主题是还原昨晚发生在我朋友圈和公众号读者群里的记录.有些时候,无论如何不能保持沉默. 昨晚七点到家,吃完饭陪女儿聊了两个小时左右.大约十点,在 ...

  • 微信上从不发朋友圈的女人,不是低调,十有八九是这3种人

    2021-05-07 14:11 华人号:经典好文 我们发朋友圈,都是为了什么? 有些人是为了记录生活的美好,有些人是当做回忆来珍藏,有些人是发泄自己的情绪, 有些人纯粹是为了炫耀显摆,有些人是为了引 ...

  • 5个标题技巧让微信文章刷爆朋友圈!

    好的"标题党"是优秀新媒体运营人的基本素质,它决定着文章的打开率. 一个好的标题会直接影响到文章的阅读量.网站访问量.网站的搜索排名.APP下载.商品点击量,最终均会影响转化率. ...

  • 微信上从不发朋友圈的人,不是低调,十有八九是这三种人

    文/吴大爷 来源/正能量(ID:ZNL118) 随着微信的广泛使用, 越来越多的人喜欢上了发朋友圈. 有些人记录生活,有些人抒发心情, 有些人用来回忆,有些人分享照片. 对于不同的人而言, 朋友圈有着 ...

  • 天了噜!电脑版微信终于可以刷朋友圈了

    微信 Windows 版迎来 3.3.0 内测,新增了浏览朋友圈功能,此外可以在搜一搜中搜索公众号.小程序.表情.视频.文章等内容.此前微信 macOS 版 3.0.0 正式版已支持浏览朋友圈. 朋友 ...