vue搭建的公众号微信分享功能

微信分享,这里要注意的是,获取签名参数时,前端传的URL是#前面部分,所以要截取一下,否则即使能分享,分享的信息也是默认的,不能修改成传过来的标题和其他想要修改的数据

import request from '../request/http'
import Vue from 'vue'
import {
  Toast
} from 'vant'
Vue.use(Toast)
import api from '../request/api'

export default {
  /* 微信分享 */
  creatWxShare: function (options) {
    request({
      url: api.requestApi.index.share_url,
      data: {
        url: window.location.href.split('#')[0]
      }
    }).then(function (res) {
      var shareMsg = res.jssdkconfig
      wx.config({
        // debug: true, //生产环境需要关闭debug模式
        appId: shareMsg.appId, //appId通过微信服务号后台查看
        timestamp: shareMsg.timestamp, //生成签名的时间戳
        nonceStr: shareMsg.nonceStr, //生成签名的随机字符串
        signature: shareMsg.signature, //签名
        jsApiList: [ //需要调用的JS接口列表
          'updateAppMessageShareData', //分享给好友
          'updateTimelineShareData', //分享到朋友圈
          'onMenuShareTimeline',
          'onMenuShareAppMessage',
          "showMenuItems"
        ]
      })

      wx.ready(function () {
        wx.checkJsApi({
          jsApiList: ["showMenuItems", "updateAppMessageShareData", "updateTimelineShareData"],
          success: function (res) {
            wx.showMenuItems({
              menuList: [
                'menuItem:share:appMessage', //发送给朋友
                'menuItem:share:timeline' //分享到朋友圈
              ]
            })
          }
        })

        //分享到朋友圈
        wx.updateTimelineShareData({
          title: options.title, // 分享标题
          desc: options.desc, //分享描述
          link: options.link, // 分享链接
          imgUrl: options.imgUrl, // 分享图标
          success: function () {
            Toast('分享链接已生成')
          }
        })

        //分享给朋友
        wx.updateAppMessageShareData({
          title: options.title, // 分享标题
          desc: options.desc, // 分享描述
          link: options.link, // 分享链接
          imgUrl: options.imgUrl, // 分享图标
          success: function () {
            Toast('分享链接已生成')
          }
        })
      })

    }).catch(() => {
      Toast('系统异常!')
    })
  }
}

有疑问的可以留言

如果对你有帮助,点个赞再走吧~谢谢
关注我,不定时分享技术干货~

### Vue 实现微信公众号推送消息 在Vue项目中集成微信公众号的消息推送功能涉及多个方面的工作。为了成功实现这一目标,开发者需遵循特定流程和技术要点。 #### 准备工作 获取必要的凭证是第一步操作的关键所在。这包括申请一个微信公众号,并从中取得`AppID`和`AppSecret`两个重要参数[^2]。这些信息将在后续开发过程中频繁使用到,因此建议妥善保存。 #### 配置服务器端环境 由于微信官方并不直接支持前端发起请求来发送模板消息,所以通常情况下会采用通过后端服务作为中介的方式来进行处理。这意味着,在Vue应用之外还需要搭建一套能够接收来自前端指令并向微信公众平台发出HTTP POST请求的服务逻辑。可以考虑利用Node.js或其他任何适合构建RESTful API的技术栈来创建这样的中间层。 对于具体的接口设计而言,假设已经有一个基于Spring Boot框架建立起来的后台系统,则可以在其中定义如下形式的方法用于触发向指定用户发送通知: ```java @PostMapping("/sendTemplateMessage") public ResponseEntity<String> sendTemplateMessage(@RequestBody Map<String, String> params){ // 处理业务逻辑... } ``` 此部分的具体编码细节取决于所选用的语言及框架特性,请参照相应文档进行调整优化。 #### 前端调用示例 当上述准备工作完成后,便可在Vue组件内部编写相应的函数用来触发表单提交动作或是其他交互行为之后立即调用刚才提到的那个自定义API路径。下面给出了一段简单的JavaScript代码片段展示如何执行异步POST请求: ```javascript async function sendMessage() { try{ const response = await axios.post('/api/sendTemplateMessage',{ "touser": "OPENID", "template_id":"TEMPLATE_ID" }); console.log(response.data); }catch(error){ console.error('Error:', error); } } ``` 请注意替换实际环境中对应的URL地址以及传递给服务器的数据结构以匹配预期输入格式要求。 #### 关于模板消息本身的内容定制化 最后但同样重要的一步是要熟悉并掌握有关于设置个性化文案、链接跳转等功能的知识点。这部分内容可以直接参阅由腾讯公司提供的《[模板消息推送](https://developers.weixin.qq.com/doc/offiaccount/Message_Management/Service_Center_messages.html)》指南中的说明[^1]。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

z.week

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

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

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

打赏作者

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

抵扣说明:

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

余额充值