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

关于在vue-cli中使用微信自动登录和分享的实例

程序员文章站 2022-06-24 17:08:51
(以下所有接口由后台提供) 一、微信自动登录 //定义事件 methods:{ //判断是否微信登陆 是不是微信浏览器 isweixin()...

(以下所有接口由后台提供)

一、微信自动登录

 //定义事件
 methods:{
   //判断是否微信登陆 是不是微信浏览器
  isweixin() {
   let ua = window.navigator.useragent.tolowercase();
   console.log(ua);//mozilla/5.0 (iphone; cpu iphone os 9_1 like mac os x) applewebkit/601.1.46 (khtml, like gecko)version/9.0 mobile/13b143 safari/601.1
   if (ua.match(/micromessenger/i) == 'micromessenger') {
   return true;
   } else {
   return false;
   }
  },
  test(){
    if(this.isweixin()){
    //微信登录,接口由后台定义
     this.$http.get('/wx/index/login/type/2').then((res) => {  
      if(res.data.code==0){  //微信登录成功跳转个人中心
        this.$router.push({
          name:'userhome',
        })
      }else{        //微信登录失败,使用填写信息登录
        this.$router.push({
          name:'login',
        })
      }
     })
  }

 //页面加载后执行
 mounted(){
   if(this.isweixin()){  //是来自微信内置浏览器
    // 获取微信信息,如果之前没有使用微信登陆过,将进行授权登录
    this.$http.get(this.$root.api+"/index/index/wx_info").then((res) => {
     if(res.data.code!=0){
       location.href='/wx/index/wxautologin';
     }
    })
   }
 }

 二、微信分享

 methods:{
  //判断是否微信登陆
  isweixin() {
   let ua = window.navigator.useragent.tolowercase();
   console.log(ua);//mozilla/5.0 (iphone; cpu iphone os 9_1 like mac os x) applewebkit/601.1.46 (khtml, like gecko)version/9.0 mobile/13b143 safari/601.1
   if (ua.match(/micromessenger/i) == 'micromessenger') {
   return true;
   } else {
   return false;
   }
  },
  //微信分享使用方法
  wxinit(sd){
   let links='http://www.kspxzx.com/index/index/wxshare_choiceok/identity/student/courseid/'+this.courseid+'/appointment_code/'+this.appointment_code;  //分享出去的链接
   let title='学车训练课程分享';  //分享的标题
   let desc=' 教练名字:'+this.codename+' 所在驾校:'+this.drive+' 训练日期:'+this.date+' 训练项目:'+this.proje; //分享的详情介绍
     wx.config({
       debug: false,
       appid: sd.appid,
       timestamp: sd.timestamp,
       noncestr: sd.noncestr,
       signature: sd.signature,
       jsapilist: [
         'onmenusharetimeline','onmenushareappmessage','onmenushareqq','onmenushareweibo'
       ]
     }); 
     wx.ready(function () {
      // alert("done")
      // alert(title)
      wx.onmenusharetimeline({
        title: title, // 分享标题
        link:links, // 分享链接'
        imgurl: sd.cover, // 分享图标
        success: function () {
          // 分享纪录
          sharerecord();
          alert("分享到朋友圈成功")
        },
        cancel: function () {
          alert("分享失败,您取消了分享!")
        }
      });
      // wx.onmenushareappmessage({
      //   title: title, // 分享标题
      //   desc: description, // 分享描述
      //   link: link, // 分享链接
      //   imgurl: cover, // 分享图标
      //   success: function () {
      //     alert("成功分享给朋友")
      //   },
      //   cancel: function () {
      //     alert("分享失败,您取消了分享!")
      //   }
      // });

      //微信分享菜单测试
      wx.onmenushareappmessage({
        title:title, // 分享标题
        desc: desc, // 分享描述
        link: links, // 分享链接
        imgurl: sd.cover, // 分享图标
        success: function () {
          // 分享纪录
          sharerecord();
          alert("成功分享给朋友")
        },
        cancel: function () {
          alert("分享失败,您取消了分享!")
        }
      });

      wx.onmenushareqq({
        title:title, // 分享标题
        desc: desc, // 分享描述
        link:links, // 分享链接
        imgurl: sd.cover, // 分享图标
        success: function () {
          // 分享纪录
          sharerecord();
          alert("成功分享给qq")
        },
        cancel: function () {
          alert("分享失败,您取消了分享!")
        }
      });
      wx.onmenushareweibo({
        title:title, // 分享标题
        desc: desc, // 分享描述
        link: links, // 分享链接
        imgurl: sd.cover, // 分享图标
        success: function () {
          // 分享纪录
          sharerecord();
          alert("成功分享给朋友")
        },
        cancel: function () {
          alert("分享失败,您取消了分享!")
        }
      });
     });
     wx.error(function(res){
       // alert("error")
       // config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于spa可以在这里更新签名。
     });
  },

 },

 mounted(){// 微信分享  'http://www.kspxzx.com/'
    let old_this=this;
    if(this.isweixin()){
      var url = "/index/index/wxshare";  //后台接口
      var data = {url:'http://www.kspxzx.com/'}   //当前网页链接,必须跟当前页面链接一样,单页面则以首页链接为准
      $.post(url,data,function(res){
        if(res.code == 0){
          // 调用微信分享
          old_this.wxinit(res.data);
        }
      });
    }
   };

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。