欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Vue 应用中结合vux使用微信 jssdk的方法

程序员文章站 2022-07-03 21:01:43
vux微信分享说明 分享接口只有认证公众号才能使用,域名必须备案且在微信后台设置。 先确认已经满足使用jssdk的要求再进行开发。 引入 在 main.js 中全局...

vux微信分享说明

分享接口只有认证公众号才能使用,域名必须备案且在微信后台设置。

先确认已经满足使用jssdk的要求再进行开发。

引入

在 main.js 中全局引入:

import { wechatplugin } from 'vux'
vue.use(wechatplugin)

console.log(vue.wechat) // 可以直接访问 wx 对象。

组件外使用

考虑到你需要在引入插件后调用config方法进行配置,你可以通过 vue.wechat 在组件外部访问wx对象。

jssdk需要请求签名配置接口,你可以直接使用 vux 基于 axios 封装的 ajaxplugin

import { wechatplugin, ajaxplugin } from 'vux'
vue.use(wechatplugin)
vue.use(ajaxplugin)

vue.http.get('/api', ({data}) => {
 vue.wechat.config(data.data)
})

组件中使用

那么之后任何组件中都可以通过 this.$wechat 访问到 wx 对象。

export default {
 created () {
 this.$wechat.onmenusharetimeline({
  title: 'hello vux'
 })
 }
}

我所使用的是组件外定义,组件内调用

引入对应的文件

import vue from 'vue'
import { wechatplugin } from 'vux'
vue.use(wechatplugin)//使用微信插件
//微信分享
const wxshare = (obj,callback)=>{
 // console.log(obj,callback);
 function geturl(){
  var url = window.location.href;
  var locationurl = url.split('#')[0];
  //console.log(locationurl);

  return locationurl;
 }
 if(obj){
  var title = obj.title==undefined||obj.title==null?'泉水系统':obj.title;
  var link = obj.link==undefined||obj.link==null?window.location.href:obj.link;
  var desc = obj.desc==undefined||obj.desc==null?'泉水系统':obj.desc;
  var imgurl = obj.imgurl==undefined||obj.imgurl==null?'src/img/share.png':obj.imgurl;
  var debug = obj.debug==true?true:false;
 }else{
  alert('请传分享参数');
 }
 //微信分享
 vue.http.get("http://获取wx_token地址").then(response => response.json()).then(data => {
  // console.log('微信微信',data)
  var wxdata = data;
  wxdata.debug = debug;
  wxdata.jsapilist= [
   // 所有要调用的 api 都要加到这个列表中
   'onmenusharetimeline',//分享到朋友圈
   'onmenushareappmessage',//分享给朋友
   'onmenushareqq',//分享到qq
   'onmenushareqzone',//分享到qq空间
   'onmenushareweibo'//分享到腾讯微博
  ];
  vue.wechat.config(wxdata);


  vue.wechat.ready(function () {
   //分享到朋友圈
   vue.wechat.onmenusharetimeline({
    title:title, // 分享标题
    link: link, // 分享链接
    desc: desc, // 分享描述
    imgurl:imgurl, // 分享图标
    success: function () {
     callback && callback();
     // 用户确认分享后执行的回调函数
    },
    cancel: function () {
     // 用户取消分享后执行的回调函数
    }
   });
   //分享到朋友
   vue.wechat.onmenushareappmessage({
    title: title, // 分享标题
    desc: desc, // 分享描述
    link: link, // 分享链接
    imgurl: imgurl, // 分享图标
    type: '', // 分享类型,music、video或link,不填默认为link
    dataurl: '', // 如果type是music或video,则要提供数据链接,默认为空
    success: function () {
     // 用户确认分享后执行的回调函数
     callback && callback();
    },
    cancel: function () {
     // 用户取消分享后执行的回调函数
    }
   });
   //分享到qq
   vue.wechat.onmenushareqq({
    title: title, // 分享标题
    desc: desc, // 分享描述
    link: link, // 分享链接
    imgurl: imgurl, // 分享图标
    success: function () {
     // 用户确认分享后执行的回调函数
     callback && callback();
    },
    cancel: function () {
     // 用户取消分享后执行的回调函数
    }
   });

   //分享到qq空间
   vue.wechat.onmenushareqzone({
    title: title, // 分享标题
    desc: desc, // 分享描述
    link: link, // 分享链接
    imgurl: imgurl, // 分享图标
    success: function () {
     // 用户确认分享后执行的回调函数
     callback && callback();
    },
    cancel: function () {
     // 用户取消分享后执行的回调函数
    }
   });

   //分享到腾讯微博
   vue.wechat.onmenushareweibo({
    title: title, // 分享标题
    desc: desc, // 分享描述
    link: link, // 分享链接
    imgurl: imgurl, // 分享图标
    success: function () {
     // 用户确认分享后执行的回调函数
     callback && callback();
    },
    cancel: function () {
     // 用户取消分享后执行的回调函数
    }
   });
  })
 })
}

输出

export {wxshare}

组件内调用

import { wxshare } from '封装wxshare函数的js路径'
 export default {
  name:'home',
  data() { //选项 / 数import { viewbox } from 'vux'
 export default {
  name:'home',
  data() { //选项 / 数据
   return {

   }
  },
  methods: { //事件处理器

  },
  components: { //定义组件

  },
  created() { //生命周期函数
   wxshare({
    title: '分享标题', // 分享标题
    desc: '分享描述', // 分享描述
    link: window.location.href, // 分享链接
    imgurl: 'http://图片地址share.png', // 分享图标
   // debug:true
   },function(){//分享成功后的回调函数

   });
  }

 }

以上这篇vue 应用中结合vux使用微信 jssdk的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。