这个笔记得做好。

1.vue页面的点击事件
import {login,loginy,wxLog,wxLogin,logout} from '../network/login'
wxloginBtn() {
          let _this = this
          wxLog()                               //调取微信登录页面的js方法
          this.alertSzTipsFlage = true
          this.tips = '正在登录...'
          setTimeout(function () {
                _this.alertSzTipsFlage = false
          }, 1500)
          this.wxLoginUserInfo()
        },
        wxLoginUserInfo(){
          let _this = this
          let userInfo = localStorage.getItem("wxUserInfo")              //拾取在js页面localStorage存储到用户信息
          if (null != userInfo) {
            userInfo = JSON.parse(userInfo)
            wxLogin(userInfo).then(res => {                                       //这里是常规登录部分,这里传递的参数userInfo的openid,nickname,headimgurl
              if (res.token) {
                window.localStorage.setItem("user", JSON.stringify(res))
                this.alertSzTipsFlage = true
                this.tips = '微信登录成功'
                setTimeout(function () {
                  _this.alertSzTipsFlage = false
                  _this.$router.push('/index')
                }, 1500)
              } else {
                this.alertSzTipsFlage = true
                this.tips = '微信登录失败'
                setTimeout(function () {
                    _this.alertSzTipsFlage = false
                }, 1500)
              }
            })
          }else {
            this.alertSzTipsFlage = true
            this.tips = '微信登录失败'
            setTimeout(function () {
                _this.alertSzTipsFlage = false
            }, 1500)
          }
        }
2.拾取到用户微信登录信息后调用登录接口
export function wxLogin(userInfo) {
  return request({
    url:'/api/weChatLogin',
    data:{
      "mobile":userInfo.openid,
      "nickname":userInfo.nickname,
      "logo":userInfo.headimgurl
    },
    method:'post',
    headers:{
      'post':{'Content-Type': 'application/json;charset=UTF-8'}
    }
  })
}
至此微信登录成功
3.之前js页面是如何拿取到用户登录权限并存储微信登录权限的?在2.下面粘贴复制:
export function wxLog(){
  let self = this;
  getService()
  // 微信授权登录对象
  let aweixin = null;
  // 当前环境支持的所有授权登录对象
  let auths = null;
  // 获取登录授权认证服务列表,单独保存微信登录授权对象
  function getService(){
    plus.oauth.getServices(function(services){
      //plus.nativeUI.alert("services:"+JSON.stringify(services));
      auths = services;
      authLogin()
    }, function(e){
      plus.nativeUI.alert("获取登录授权服务列表失败,请稍后重试");
      plus.nativeUI.alert("获取登录授权服务列表失败:"+JSON.stringify(e));
    } );
  }
  // 获取微信登录授权对象后可进行登录认证操作
  function authLogin(){
    for(let i = 0; i < auths.length; i++){
      if(auths[i].id == 'weixin'){
        aweixin = auths[i];
        break;
      }
    }
    if(!aweixin){
      plus.nativeUI.alert("当前环境不支持微信登录");
      return;
    }
    if(!aweixin.authResult){
      aweixin.login(function(e){
        //plus.nativeUI.alert("登录认证成功!"+JSON.stringify(e));
        authUserInfo()
      }, function(e){
        //plus.nativeUI.alert("登录认证失败: "+JSON.stringify(e));
      } );
    }else{
      authUserInfo()
      console.log("已经登录认证!");
    }
  }
  // 获取微信登录授权对象后获取用户信息操作
  function authUserInfo(){
    if(!aweixin){
      plus.nativeUI.alert("当前环境不支持微信登录");
      return;
    }
    if(aweixin.authResult){
      aweixin.getUserInfo( function(e){
        //登录成功处理
        //plus.nativeUI.alert("获取用户信息成功:"+JSON.stringify(aweixin.userInfo));
        window.localStorage.setItem("wxUserInfo", JSON.stringify(aweixin.userInfo));
        authLoginOut(); //注销登录防止切换账号获取到旧信息
      }, function(e){
        console.log("获取用户信息失败: "+JSON.stringify(e));
      } );
    }else{
      plus.nativeUI.alert("未登录认证!");
    }
  }
  // 注销登录认证
  function authLoginOut(){
    if(!aweixin){
      plus.nativeUI.alert("当前环境不支持微信登录");
      return;
    }
    aweixin.logout(function(e){
      // plus.nativeUI.alert("注销登录认证成功!"+JSON.stringify(e));
    }, function(e){
      console.log("注销登录认证失败: "+JSON.stringify(e));
    });
  }
}

vue项目hbuilder打包-微信登录调取手机微信登录权限的更多相关文章

  1. vue项目 构建 打包 发布 三部曲

    一.vue项目的创建 1.首先第一肯定是要有Node.js及npm这个不多说了2.安装脚手架 此时可以直接浏览-但是现在肯定有很多小白想将他发布到gitHub上并可以浏览,使用vue全家桶制作自己的博 ...

  2. Vue项目的打包

    vue项目的打包 更改config文件夹下的index.js里的assetsPublicPath路径    将 “/”  改为  “./” build: { env: require('./prod. ...

  3. vue项目如何打包扔向服务器

    vue项目如何打包扔向服务器   当我们将 vue 项目完成后,面临的就是如何将项目进行打包上线,放到服务器中.我使用的是 vue-cli(simple) 脚手架,所以就讲一下如何将项目进行打包,并放 ...

  4. h5微信页面在手机微信端和微信web开发者工具中都能正常显示,但是在pc端微信浏览器上打不开(显示空白)

    h5微信页面在手机微信和微信开发者工具中都能正常显示,但是在pc端微信浏览器上打不开或者数据加载不出来. 原因:pc端微信浏览器不支持ES6语法,我的代码中使用了一些ES6的特性 解决:将ES6转换为 ...

  5. vue项目webpack打包后有的文件big 问题

    vue项目打包的时候,有的big, 超过1M,   需要进行优化,方法有: 1.  非首屏图片,可以采用懒加载的方式,  如:图片的懒加载,  vue中路由的懒加载 等 2. 各个模块, 采用如sea ...

  6. vue项目如何打包前后端不分离发布手把手教学apache、nginx

    vue项目如何不分离发布 1.首先yarn build 我用了vue-cli脚手架,bulid后的dist文件夹里的index.html有加版本号,那么为什么需要加版本号呢? a.回滚 b.解决浏览器 ...

  7. vue项目 webpack打包后,图片路径是绝对路径

    vue项目,使用webpack打包,虽然在全局把路径改成了相对的路径,但是图片引用的路径还是异常的,解决办法如下: 1.config文件夹下index.js中: assetsPublicPath:&q ...

  8. Springboot项目与vue项目整合打包

    我的环境 * JDK 1.8 * maven 3.6.0 * node环境 1.为什么需要前后端项目开发时分离,部署时合并? 在一些公司,部署实施人员的技术无法和互联网公司的运维团队相比,由于各种不定 ...

  9. vue项目中打包编译后,CSS样式【-webkit-box-orient: vertical】打包后丢失问题

    最近在做vue项目的时候页面处理多行文本样式时用到了-webkit-box-orient: vertical这个属性,本地跑项目没问题,但是打包放到服务器后发现这个属性丢失了.如下图: 后来在网上查了 ...

  10. Vue项目如何打包问题总结

    当我们将 vue 项目完成后,面临的就是如何将项目进行打包上线,放到服务器中.我使用的是 vue-cli(simple) 脚手架,所以就讲一下如何将项目进行打包,并放到 tomcat 上. 先来描述一 ...

随机推荐

  1. iptables-save 命令使用总结

    转载请注明出处: iptables-save 命令在 Linux 系统中用于将当前运行的 iptables 防火墙规则导出到一个文件中.这对于备份规则.迁移规则或在不同系统间共享规则配置非常有用. 基 ...

  2. 启用Windows防火墙后,FTP传输非常慢

    我们有一个计划任务,该任务使用Windows命令行FTP程序在两个Windows服务器之间传输大文件(〜130 MB).速度很慢(大约需要30分钟),有时会在传输完成之前终止.服务器是2003年(发送 ...

  3. KingbaseES V8R6 等待事件之IO类BufFileRead BufFileWrite

    等待事件含义 当数据库创建临时文件时,会发生IO:BufFileRead和IO:BufFileWrite等待事件.当操作需要的内存比当前定义的work_mem内存参数更多时,会将临时数据写入磁盘永久存 ...

  4. 什么是OOP(Object Oriented Programming)面向对象编程

    1.认识面向对象首先要认识面向过程 面向过程编程,举个例子 比如有一天你要吃回锅肉,你会先去准备食材,然后一步一步把这道菜做出来,这就是面向过程. 还有一种方式你依然可以得到这道菜,你可以去饭店直接点 ...

  5. #二分图,并查集#洛谷 6185 [NOI Online #1 提高组] 序列

    题目 分析 考虑2操作可以在保证总和不变的情况下任意修改, 如果将2操作所在的连通块用并查集缩点,那么再考虑1操作, 按照1操作建边,如果存在奇环,那么只要这个环的点权和为偶数一定能使 \(a,b\) ...

  6. #位运算#CF959E Mahmoud and Ehab and the xor-MST

    题目 \(n\)个点的完全图标号为\([0,n-1]\),\(i\)和\(j\)连边权值为\(i\: xor\:j\),求MST的值 分析 考虑MST有两种解法一种是Prim一种是Kruskal,Pr ...

  7. Jetty的模块

    查看模块的列表,执行如下命令: java -jar $JETTY_HOME/start.jar --list-modules 启用模块,比如http模块,执行如下命令: java -jar $JETT ...

  8. 使用OHOS SDK构建bullet

    参照OHOS IDE和SDK的安装方法配置好开发环境. 从github下载源码. 执行如下命令: git clone --depth=1 https://github.com/bulletphysic ...

  9. 区块链从入门到放弃系列教程-涵盖密码学,超级账本,以太坊,Libra,比特币等持续更新

    目录 简介 什么是区块链 区块链不是什么 区块链的基础:密码学 区块链的基础:分布式系统和共识机制 超级账本Hyperledger 以太坊 Libra 比特币 总结 简介 区块链是一种防篡改的共享数字 ...

  10. 使用site-maven-plugin在github上搭建公有仓库

    目录 简介 前期准备 在maven中配置GitHub权限 配置deploy-plugin 配置site-maven-plugin 怎么使用这个共享的项目 总结 简介 Maven是我们在开发java程序 ...