How to implement WeChat sharing in Moments and send friends in Vue
Below I will share with you an example of Vue implementing WeChat sharing circle of friends and sending friends. It has a good reference value and I hope it will be helpful to everyone.
First download the WeChat jssdk and introduce it into the project. I won’t go into how to install it here. If you don’t know how, you can take a look at the npm tutorial and the es6 tutorial.
The first step is to introduce WeChat jssdk. Here I download WeChat jssdk and then use webpack to introduce it into the project.
The second step, Get detailed data and render the page.
The third step, After successfully obtaining the detailed data, obtain the WeChat signature, token and other configuration information.
The fourth step, Configure the desired function through the API
Code: <template>
<p class="details">
<player :videoUrl="details.videoUrl" :coverUrl="details.coverUrl" :videoId="details.videoId"/>
<p 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>
</p>
</p>
</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>
Related articles:
Comprehensive interpretation of cli in vue (detailed tutorial)Use radio in angularJS to achieve a single choice of two options How to use (detailed tutorial) Get the value method of the default selected radio button in angularjs (detailed tutorial)The above is the detailed content of How to implement WeChat sharing in Moments and send friends in Vue. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

You can add a function to the Vue button by binding the button in the HTML template to a method. Define the method and write function logic in the Vue instance.

There are two ways to jump div elements in Vue: use Vue Router and add router-link component. Add the @click event listener and call this.$router.push() method to jump.

Troubleshooting and solutions to the company's security software that causes some applications to not function properly. Many companies will deploy security software in order to ensure internal network security. ...

The methods to implement the jump of a tag in Vue include: using the a tag in the HTML template to specify the href attribute. Use the router-link component of Vue routing. Use this.$router.push() method in JavaScript. Parameters can be passed through the query parameter and routes are configured in the router options for dynamic jumps.

Netflixusesacustomframeworkcalled"Gibbon"builtonReact,notReactorVuedirectly.1)TeamExperience:Choosebasedonfamiliarity.2)ProjectComplexity:Vueforsimplerprojects,Reactforcomplexones.3)CustomizationNeeds:Reactoffersmoreflexibility.4)Ecosystema

Netflix mainly uses React as the front-end framework, supplemented by Vue for specific functions. 1) React's componentization and virtual DOM improve the performance and development efficiency of Netflix applications. 2) Vue is used in Netflix's internal tools and small projects, and its flexibility and ease of use are key.

Netflix uses React as its front-end framework. 1) React's componentized development model and strong ecosystem are the main reasons why Netflix chose it. 2) Through componentization, Netflix splits complex interfaces into manageable chunks such as video players, recommendation lists and user comments. 3) React's virtual DOM and component life cycle optimizes rendering efficiency and user interaction management.

There are the following methods to implement component jump in Vue: use router-link and <router-view> components to perform hyperlink jump, and specify the :to attribute as the target path. Use the <router-view> component directly to display the currently routed rendered components. Use the router.push() and router.replace() methods for programmatic navigation. The former saves history and the latter replaces the current route without leaving records.
