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


Posted in Javascript onJune 22, 2017

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

一、微信自动登录

//定义事件
 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);
        }
      });
    }
   };

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

Javascript 相关文章推荐
15条JavaScript最佳实践小结
Aug 09 Javascript
基于JavaScript代码实现pc与手机之间的跳转
Dec 23 Javascript
jQuery Tags Input Plugin(添加/删除标签插件)详解
Jun 20 Javascript
jQuery实现文字自动横移
Jan 08 Javascript
jQuery动态生成表格及右键菜单功能示例
Jan 13 Javascript
js中的面向对象入门
Mar 06 Javascript
基于js粘贴事件paste简单解析以及遇到的坑
Sep 07 Javascript
Vue-Router实现组件间跳转的三种方法
Nov 07 Javascript
详解使用create-react-app添加css modules、sasss和antd
Jul 31 Javascript
vue移动端监听滚动条高度的实现方法
Sep 03 Javascript
9种方法优化jQuery代码详解
Feb 04 jQuery
vue实现放大镜效果
Sep 17 Javascript
详解vue 配合vue-resource调用接口获取数据
Jun 22 #Javascript
vue使用stompjs实现mqtt消息推送通知
Jun 22 #Javascript
Angularjs在360兼容模式下取数据缓存问题的解决办法
Jun 22 #Javascript
详解用webpack2搭建angular2的项目
Jun 22 #Javascript
vue2.0实现分页组件的实例代码
Jun 22 #Javascript
纯JS实现只能输入数字的简单代码
Jun 21 #Javascript
详解ElementUI之表单验证、数据绑定、路由跳转
Jun 21 #Javascript
You might like
PHP __autoload()方法真的影响性能吗?
2012/03/30 PHP
php set_time_limit()函数的使用详解
2013/06/05 PHP
PHP扩展模块memcached长连接使用方法分析
2014/12/24 PHP
PHP大文件分割上传 PHP分片上传
2017/08/28 PHP
PHP使用PDO创建MySQL数据库、表及插入多条数据操作示例
2019/05/30 PHP
php自定义排序uasort函数示例【二维数组按指定键值排序】
2019/06/19 PHP
Javascript 变量作用域 两个可能会被忽略的小特性
2010/03/23 Javascript
用jquery实现输入框获取焦点消失文字
2013/04/27 Javascript
jquery实现div拖拽宽度示例代码
2013/07/31 Javascript
使用jQuery jqPlot插件绘制柱状图
2014/12/18 Javascript
js实现仿QQ秀换装效果的方法
2015/03/04 Javascript
javascript实现设置、获取和删除Cookie的方法
2015/06/01 Javascript
JavaScript拖拽、碰撞、重力及弹性运动实例分析
2016/01/08 Javascript
如何解决jQuery EasyUI 已打开Tab重新加载问题
2016/12/19 Javascript
jQuery Ajax实现跨域请求
2017/01/21 Javascript
angularJS模态框$modal实例代码
2017/05/27 Javascript
vue对storejs获取的数据进行处理时遇到的几种问题小结
2018/03/20 Javascript
layui实现下拉框三级联动
2019/07/26 Javascript
JS实现网站吸顶条
2020/01/08 Javascript
Python实现截屏的函数
2015/07/25 Python
浅谈python for循环的巧妙运用(迭代、列表生成式)
2017/09/26 Python
Python实现JSON反序列化类对象的示例
2018/01/31 Python
python 实现提取某个索引中某个时间段的数据方法
2019/02/01 Python
Python 通过微信控制实现app定位发送到个人服务器再转发微信服务器接收位置信息
2019/08/05 Python
如何使用Python抓取网页tag操作
2020/02/14 Python
Python configparser模块封装及构造配置文件
2020/08/07 Python
css3过渡_动力节点Java学院整理
2017/07/11 HTML / CSS
html5通过postMessage进行跨域通信的方法
2017/12/04 HTML / CSS
医院实习接收函
2014/01/12 职场文书
《雨霖铃》教学反思
2014/02/22 职场文书
办理护照工作证明
2014/10/10 职场文书
2014年女职工工作总结
2014/11/27 职场文书
教师党员自我评价范文
2015/03/04 职场文书
关于做家务的心得体会
2016/01/23 职场文书
好段摘抄大全(48句)
2019/08/08 职场文书
Apache SkyWalking 监控 MySQL Server 实战解析
2022/09/23 Servers