vue实现微信分享朋友圈和朋友功能

vue实现微信分享朋友圈和朋友功能

温馨提示:本文共3536个字,读完预计9分钟。

这两天在开发一个双十一的活动页,前端用的是Vue,由于活动的性质需要传播分享,所以在项目中也集成了微信JS-SDK自定义的功能,下面来说一下实现的思路和方法。

前提:要有公众号,需要在其后台添加一个安全域名,安全域名用于微信的验证,没有这一步操作,下面的都白搭。一般还需要后端提供一个获取appid,timestamp,签名等信息的接口给你ajax请求用。如果你自己用nodejs啥的实现,那么也是棒棒的。

下面说一下具体的步骤:

1、通过npm 安装 微信的js-sdk,当然你也可以在index.html页面中直接加script标签来引用,哪种方式都可以。命令如下:

1
npm install weixin-js-sdk --save-dev

2、在Vue目录下,比如:common文件夹,新建一个js文件,起名你随意,我这边叫wxapi.js,贴入下面代码(PS: Axios根据实际情况来使用):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
/**
 * 微信js-sdk
 * 参考文档:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115
 */
import wx from 'weixin-js-sdk'
import Axios from 'axios'
const wxApi = {
  /**
  * [wxRegister 微信Api初始化]
  * @param  {Function} callback [ready回调函数]
  */
  wxRegister (callback) {
    // 这边的接口请换成你们自己的
    Axios.post('/api/wechat/shares', { reqUrl: window.location.href }, { timeout: 5000, withCredentials: true }).then((res) => {
      let data = JSON.parse(res.data.data) // PS: 这里根据你接口的返回值来使用
      wx.config({
        debug: false, // 开启调试模式
        appId: data.appId, // 必填,公众号的唯一标识
        timestamp: data.timestamp, // 必填,生成签名的时间戳
        nonceStr: data.noncestr, // 必填,生成签名的随机串
        signature: data.signature, // 必填,签名,见附录1
        jsApiList: data.jsApiList // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
      })
    }).catch((error) => {
      console.log(error)
    })
    wx.ready((res) => {
      // 如果需要定制ready回调方法
      if (callback) {
        callback()
      }
    })
  },
  /**
  * [ShareTimeline 微信分享到朋友圈]
  * @param {[type]} option [分享信息]
  * @param {[type]} success [成功回调]
  * @param {[type]} error   [失败回调]
  */
  ShareTimeline (option) {
    wx.onMenuShareTimeline({
      title: option.title, // 分享标题
      link: option.link, // 分享链接
      imgUrl: option.imgUrl, // 分享图标
      success () {
        // 用户成功分享后执行的回调函数
        option.success()
      },
      cancel () {
        // 用户取消分享后执行的回调函数
        option.error()
      }
    })
  },
  /**
  * [ShareAppMessage 微信分享给朋友]
  * @param {[type]} option [分享信息]
  * @param {[type]} success [成功回调]
  * @param {[type]} error   [失败回调]
  */
  ShareAppMessage (option) {
    wx.onMenuShareAppMessage({
      title: option.title, // 分享标题
      desc: option.desc, // 分享描述
      link: option.link, // 分享链接
      imgUrl: option.imgUrl, // 分享图标
      success () {
        // 用户成功分享后执行的回调函数
        option.success()
      },
      cancel () {
        // 用户取消分享后执行的回调函数
        option.error()
      }
    })
  }
}
export default wxApi

3、如何使用呢?

在Vue页面,比如首页,先引入刚刚的js文件:

1
import wxapi from '@/common/wxapi.js'

mounted()中加入调用的代码:

1
wxapi.wxRegister(this.wxRegCallback)

然后再methods中加入下面3个方法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
wxRegCallback () {
  // 用于微信JS-SDK回调
  this.wxShareTimeline()
  this.wxShareAppMessage()
},
wxShareTimeline () {
  // 微信自定义分享到朋友圈
  let option = {
    title: '限时团购周 挑战最低价', // 分享标题, 请自行替换
    link: window.location.href.split('#')[0], // 分享链接,根据自身项目决定是否需要split
    imgUrl: 'logo.png', // 分享图标, 请自行替换,需要绝对路径
    success: () => {
      alert('分享成功')
    },
    error: () => {
      alert('已取消分享')
    }
  }
  // 将配置注入通用方法
  wxapi.ShareTimeline(option)
},
wxShareAppMessage () {
  // 微信自定义分享给朋友
  let option = {
    title: '限时团购周 挑战最低价', // 分享标题, 请自行替换
    desc: '限时团购周 挑战最低价', // 分享描述, 请自行替换
    link: window.location.href.split('#')[0], // 分享链接,根据自身项目决定是否需要split
    imgUrl: 'logo.png', // 分享图标, 请自行替换,需要绝对路径
    success: () => {
      alert('分享成功')
    },
    error: () => {
      alert('已取消分享')
    }
  }
  // 将配置注入通用方法
  wxapi.ShareAppMessage(option)
}

以上几步即实现了微信的分享功能,如果期间遇到问题,请自己开启debug调试模式,并根据错误提示的内容去解决。一般如果后端接口没问题的话,前端一般只会遇到:签名验证失败或者URL的问题。?

config:fail,Error: AppID 不合法

由于后端返回的是json, 我前台没有将json转为对象,所以导致一直报appID不合法。这个细心点就不会遇到了。

补充说明:jsApiList的值

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
    onMenuShareTimeline
    onMenuShareAppMessage
    onMenuShareQQ
    onMenuShareWeibo
    onMenuShareQZone
    startRecord
    stopRecord
    onVoiceRecordEnd
    playVoice
    pauseVoice
    stopVoice
    onVoicePlayEnd
    uploadVoice
    downloadVoice
    chooseImage
    previewImage
    uploadImage
    downloadImage
    translateVoice
    getNetworkType
    openLocation
    getLocation
    hideOptionMenu
    showOptionMenu
    hideMenuItems
    showMenuItems
    hideAllNonBaseMenuItem
    showAllNonBaseMenuItem
    closeWindow
    scanQRCode
    chooseWXPay
    openProductSpecificView
    addCard
    chooseCard
    openCard

以上有些权限菜单可能会被废弃,请自行查看微信官方文档:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115

写在最后

好了,本文到此结束!

如果还有什么疑问或者建议,欢迎多多交流,原创文章,文笔有限,文中若有不正之处,万望告知。

如果觉得文章对你有帮助,打个赏,让我有更大的动力去创作,谢谢!

转载于:https://www.cnblogs.com/guiyishanren/p/11002467.html

uniapp微信小程序分享功能 【代码】uniapp微信小程序分享功能 阅读详情

相关推荐

Vue 实现微信分享功能

我们将使用 Vue 的组件一些微信分享的 API 来实现这个功能。通过使用 Vue 微信分享的 API,我们可以轻松地实现分享内容到微信功能。在这篇文章中,我们创建了一个分享组件,并通过发送 HTTP 请求获取微信分享的配置信息。在该组件中,我们将实现分享按钮的功能。需要注意的是,上面的代码中假设了存在一个后端服务器来提供微信分享的配置信息。最后,我们在主组件中使用分享组件,实现了将内容分享微信功能。现在,你可以在你的应用中展示分享按钮,并且当用户点击按钮时,将会触发分享微信功能

CoderExtra的博客 2376

vue环境下增加分享功能

/ disabled: [“google”, “facebook”, “twitter”], // 禁用的站点。// url: “”, // 网址,默认使用 window.location.href。wechatQrcodeTitle: “微信扫一扫:分享”, // 微信二维码提示文字。title: “”, // 标题,默认读取 document.title 或者。image: “”, // 图片, 默认取网页中第一个img标签。“qzone”, //qq空间。“wechat”, //微信

u010086628的博客 1751

vue微信分享朋友圈 vue微信发送给好友

主要为大家详细介绍了vue微信分享朋友圈vue微信发送给好友功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

vue 实现分享功能

vue 实现分享功能

qq_35377714的博客 1653

Vue)H5项目实现微信分享好友朋友圈功能

先上需要的效果图哈 如图所示,再vue项目中,分享携带头部标题、简介缩略图等信息,下面进入正题: 安装&引入 // 再index.html中放入 <script src="https://res2.wx.qq.com/open/js/jweixin-1.6.0.js"></script> 或者使用官方插件 npm i weixin-js-sdk 使用(再需要引用的页面) // npm安装的需要引入 let wx = require('weixin-js-sd

weixin_44314609的博客 3094

vueJS实现微信分享朋友圈朋友功能

前提:要有公众号,需要在其后台添加一个安全域名,安全域名用于微信的验证,没有这一步操作,下面的都白搭。一般还需要后端提供一个获取appid,timestamp,签名等信息的接口给你ajax请求用。如果你自己用nodejs啥的实现,那么也是棒棒的。 下面说一下具体的步骤: 1、通过npm 安装 微信的js-sdk,当然你也可以在index.html页面中直接加script标签来引用,哪种方式都可...

E.N.Edward 1363

VUE微信分享功能

vue 微信分享 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客: 全新的界面设计 ,将...

weixin_45504837的博客 636

vue(h5+app分享微信朋友圈、保存图片)

h5+api(调用手机的一些功能) http://www.html5plus.org/doc/zh_cn/android.html 分享海报(image) shareWx(scene) { //scene=> 'WXSceneTimeline'(朋友圈)、'WXSceneSession'(微信)、pic=>图片地址 let pic = this.pic_img let msg = { type: "image", p.

Dreamy smile 5301

vue实现微信分享好友分享朋友圈功能

如何在Vue实现微信分享好友/朋友圈功能 ? 官方文档:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html 实现方法: 在vue 页面初始化时 created(){code…} 进行 codeing 调用接口实现 create(){ this.getShareInfo(); // 页面初始化调用此方法; } methods:{ getShareInfo(){ // 实现如下: //

Missbelover的博客 1561

uni-app开发实战:利用Vue混入(mixin)实现微信小程序全局分享功能,一键发送给朋友分享朋友圈、复制链接

data() {return {}},//1.发送给朋友//2.分享朋友圈123456789注:onShareAppMessage() onShareTimeline() 方法是 onLoad , methods 等方法同级的。

2355

Vue H5微信分享功能实现

微信网页开发/JS-SDK说明文档 概述 微信JS-SDK是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包。 通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照、选图、语音、位置等手机系统的能力,同时可以直接使用微信分享、扫一扫、卡券、支付等微信特有的能力,为微信用户提供更优质的网页体验。 JSSDK使用步骤可以详细查看说明文档 分享接口 请注意,不要有诱导分享等违规行为,对于诱导分享行为将永久回收公众号接口...

deary 5196

vue 微信分享功能

微信分享

Suger的博客 3183

分享功能实现

分享流程

m0_58361435的博客 233

vue 调用微信分享接口 分享截图图片

vue 调用微信分享接口 分享截图图片 现在好多应用 都需要分享 图片等等的需求 。 大体需要 这几个步骤 获取分享图片 将获取图片写入本地文件 调用分享接口 分享已经写好的本地图片 因为我这边 需要分享图片实际是在 mui-slider 里面,为了分享图片清澈(不包含UI)我特意讲Slider 独立出...

唐僧的专栏 5069

vue实现将自己网站(h5链接)分享微信中形成小卡片(超详细)

我们在分享公众号信息到微信或者群中的时候,会出现一个小卡片,如下所示:但是呢,这种小卡片只能走微信的接口来实现,比如我们从公众号、小程序中分享的内容可以是这样的。如果我们将自己的博客分享微信的话,只会出现个链接。那么,试问一下你,分享出来个这样的链接,你会去点吗?会不会以为这就是个钓鱼链接。今天,我们就来看看,如何将我们自己的站,搞一个微信一样的分享卡片出来。

穆雄雄的博客 2万+

Vue】H5浏览器实现微信分享功能的终极解决方案

分享H5浏览器完成微信分享卡片功能,特别需要注意:iOS设备出现invalid signature签名错误,很可能是因为 wx.config中的realAuthUrl与当前页面url不一致造成的!

小安驾到的博客 1万+
上一篇: 开源小程序
下一篇: php接受axios数据
dianchanhe0596
博客等级 码龄10年 4粉丝 0原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值