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.

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.

Pagination is a technology that splits large data sets into small pages to improve performance and user experience. In Vue, you can use the following built-in method to paging: Calculate the total number of pages: totalPages() traversal page number: v-for directive to set the current page: currentPage Get the current page data: currentPageData()

Function interception in Vue is a technique used to limit the number of times a function is called within a specified time period and prevent performance problems. The implementation method is: import the lodash library: import { debounce } from 'lodash'; Use the debounce function to create an intercept function: const debouncedFunction = debounce(() => { / Logical / }, 500); Call the intercept function, and the control function is called at most once in 500 milliseconds.

There are two main ways to pass parameters to Vue.js functions: pass data using slots or bind a function with bind, and provide parameters: pass parameters using slots: pass data in component templates, accessed within components and used as parameters of the function. Pass parameters using bind binding: bind function in Vue.js instance and provide function parameters.

The foreach loop in Vue.js uses the v-for directive, which allows developers to iterate through each element in an array or object and perform specific operations on each element. The syntax is as follows: <template> <ul> <li v-for="item in items>>{{ item }}</li> </ul> </template>&am

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.
