vue实现微信分享朋友圈,发送朋友的示例讲解


Posted in Javascript onFebruary 10, 2018

首先下载微信jssdk引入项目中,这里我就不说怎么去安装了,如果不会的可以看一下npm教程和es6的教程。

第一步,引入微信jssdk,此处我是通过下载微信jssdk,然后用webpack引入进项目的。

第二步,获取详情数据,渲染页面。

第三步,获取详情数据成功后再获取微信签名,token等配置信息。

第四步,通过api配置所想要的功能

代码:

<template>
 <div class="details">
 <player :videoUrl="details.videoUrl" :coverUrl="details.coverUrl" :videoId="details.videoId"/>
 <div class="description">
  <span class="label" :style="{backgroundColor: details.videoLabelColor}">{{details.videoLabel}}</span>
  <p class="title">{{details.videoTitle}}</p>
  <p class="info">
  <span>{{details.mtime}}</span>
  <i class="iconfont icon--"></i>
  {{details.videoPlayTimes}}
  </p>
  <p class="summary">简介</p>
  <p class="article ql-editor" v-html="details.videoDescription"></p>
 </div>
 </div>
</template>
<script>
import player from '@/components/player'
import { videoDtails, getApp } from '@/config/api'
/* eslint-disable no-undef */
export default {
 components: {
 player
 },
 data () {
 return {
  details: {},
  appId: '',
  signature: '',
  timestamp: '',
  nonceStr: ''
 }
 },
 beforeDestroy () {
 document.querySelector('.htmlTitle').text = 'title'
 },
 mounted () {
 // 获取详情数据<span class="space" style="white-space:pre;display:inline-block;text-indent:2em;line-height:inherit;">let url = window.location.href.split("#")[0]</span>
 this.$http.get(this, videoDtails, {videoId: this.$route.query.id}, res => {
  this.details = res
  document.querySelector('.htmlTitle').text = this.details.videoTitle
  this.$http.get(this, getApp, {url: url, refresh: true}, res => {
  this.appId = res.appId
  this.signature = res.signature
  this.timestamp = res.timestamp
  this.nonceStr = res.nonceStr
  this.shard(url)
  })
 })
 },
 methods: {
 shard (url) {
  wx.config({
  debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
  appId: this.appId, // 必填,公众号的唯一标识
  timestamp: this.timestamp, // 必填,生成签名的时间戳
  nonceStr: this.nonceStr, // 必填,生成签名的随机串
  signature: this.signature, // 必填,签名,见附录1
  jsApiList: ['onMenuShareTimeline', 'onMenuShareAppMessage'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
  })
  wx.onMenuShareTimeline({
  title: this.details.videoTitle, // 分享标题
  link: url+'#/...', // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
  imgUrl: this.details.coverUrl, // 分享图标
  success () {
   alert('分享朋友圈成功')
   // 用户确认分享后执行的回调函数
  },
  cancel () {
   // 用户取消分享后执行的回调函数
  }
  })
  wx.onMenuShareAppMessage({
  title: this.details.videoTitle, // 分享标题
  desc: this.details.videoTitle, // 分享描述
  link: url+'#/...', // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
  imgUrl: this.details.coverUrl, // 分享图标
  type: 'video', // 分享类型,music、video或link,不填默认为link
  dataUrl: this.details.videoUrl, // 如果type是music或video,则要提供数据链接,默认为空
  success: function () {
   alert('分享给朋友成功')
   // 用户确认分享后执行的回调函数
  },
  cancel: function () {
   // 用户取消分享后执行的回调函数
  }
  })
 }
 }
}
</script>
<style lang="less" scoped>
.details {
 overflow: hidden;
 .description {
 padding: 10px;
 .label {
  display: inline-block;
  padding:0 10px;
  height: 22px;
  line-height: 22px;
  color: #fff;
  font-size: 12px;
  text-align: center;
 }
 .title {
  line-height: 30px;
  font-size: 18px;
 }
 .info {
  line-height: 26px;
  color: #949494;
  span {
  margin-right: 15px;
  }
  .iconfont {
  font-size: 12px;
  }
 }
 .summary {
  margin-top: 20px;
  color: #4b4b4b;
  font-size: 16px;
 }
 .article {
  margin-top: 10px;
 }
 }
}
</style>

以上这篇vue实现微信分享朋友圈,发送朋友的示例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
分享20多个很棒的jQuery 文件上传插件或教程
Sep 04 Javascript
JS交换变量的方法
Jan 21 Javascript
JS实现鼠标点击展开或隐藏表格行的方法
Mar 03 Javascript
javascript实现添加附件功能的方法
Nov 18 Javascript
jQuery hover事件简单实现同时绑定2个方法
Jun 07 Javascript
Angular4 反向代理Details实践
May 30 Javascript
用JS实现根据当前时间随机生成流水号或者订单号
May 31 Javascript
详解基于DllPlugin和DllReferencePlugin的webpack构建优化
Jun 28 Javascript
详解vue2.0 资源文件assets和static的区别
Nov 27 Javascript
十分钟教你上手ES2020新特性
Feb 12 Javascript
vue调用本地摄像头实现拍照功能
Aug 14 Javascript
三步搞定:Vue.js调用Android原生操作
Sep 07 Javascript
使用 vue.js 构建大型单页应用
Feb 10 #Javascript
javascript中的隐式调用
Feb 10 #Javascript
VUEJS 2.0 子组件访问/调用父组件的实例
Feb 10 #Javascript
webpack之devtool详解
Feb 10 #Javascript
React组件refs的使用详解
Feb 09 #Javascript
详解vue-cli项目中的proxyTable跨域问题小结
Feb 09 #Javascript
使用express搭建一个简单的查询服务器的方法
Feb 09 #Javascript
You might like
PHP 获取ip地址代码汇总
2015/07/05 PHP
yii数据库的查询方法
2015/12/28 PHP
微信公众号支付之坑:调用支付jsapi缺少参数 timeStamp等错误解决方法
2016/01/12 PHP
浅析Yii2 GridView 日期格式化并实现日期可搜索教程
2016/04/22 PHP
浅谈PHP中如何实现Hook机制
2017/11/14 PHP
Laravel6.0.4中将添加计划任务事件的方法步骤
2019/10/15 PHP
在视频前插入广告
2006/11/20 Javascript
js输出列表实现代码
2010/09/12 Javascript
jQuery简单图表peity.js使用示例
2014/05/02 Javascript
JS动态显示表格上下frame的方法
2015/03/31 Javascript
JS添加删除DIV的简单实例
2016/07/08 Javascript
vue.js学习笔记:如何加载本地json文件
2017/01/17 Javascript
Vue实现带进度条的文件拖动上传功能
2018/02/23 Javascript
vue百度地图 + 定位的详解
2019/05/13 Javascript
记录微信小程序 height: calc(xx - xx);无效问题
2019/12/30 Javascript
javascript实现简单搜索功能
2020/03/26 Javascript
Vue自定义多选组件使用详解
2020/09/08 Javascript
wxPython中listbox用法实例详解
2015/06/01 Python
Python实现比较两个列表(list)范围
2015/06/12 Python
对Python _取log的几种方式小结
2019/07/25 Python
python3安装crypto出错及解决方法
2019/07/30 Python
python运用sklearn实现KNN分类算法
2019/10/16 Python
python超时重新请求解决方案
2019/10/21 Python
Django实现分页显示效果
2019/10/31 Python
Python 获取异常(Exception)信息的几种方法
2020/12/29 Python
Python爬虫爬取ts碎片视频+验证码登录功能
2021/02/22 Python
Python使用paramiko连接远程服务器执行Shell命令的实现
2021/03/04 Python
波兰品牌内衣及泳装网上商店:Astratex.pl
2017/02/03 全球购物
法国床上用品商店:La Compagnie du lit
2019/12/26 全球购物
校园演讲稿汇总
2014/05/21 职场文书
大学生交通专业求职信
2014/09/01 职场文书
授权委托书公证
2014/09/14 职场文书
基层干部个人对照检查及整改措施
2014/10/28 职场文书
高校自主招生校长推荐信
2015/03/23 职场文书
总经理司机岗位职责
2015/04/10 职场文书
MySQL 亿级数据导入导出及迁移笔记
2021/06/18 MySQL