首页 > 其他分享 >uniapp-黑马优选学习03

uniapp-黑马优选学习03

时间:2023-06-19 23:22:19浏览次数:40  
标签:uniapp code return err 03 授权 uni login 黑马

01. uni 数字组件: uni-number-box

02. 在 flex 布局中,如果子元素未铺满的处理

  >> 情形:

       

   >> 处理方式: 为相应的子元素,配置 flex=1

03. 商品信息的滑动删除

  >> 组件: uni-swipe-action 和  uni-swipe-action-item

  >> 注意: options 已经修改为:left-options, right-options

04. 关于授权的内容

  >> 在开发环境,即使清除了授权信息,但同样不需授权,此处仅做登记,后期碰上了再详看

  >> 授权机制代码如下:  

async chooseAddress(){
        const [err,succ]= await uni.chooseAddress().catch(err=>err)
        // 成功选择了收货地址
        if(succ && succ.errMsg==='chooseAddress:ok'){
          this.setAddress(succ)
        }
        // 用户没授权,则向用户重新发起授权申请
        //if(err && err.errMsg==='chooseAddress:fail auth deny'){
     if(err && (err.errMsg==='chooseAddress:fail auth deny' || err.errMsg==='chooseAddress:fail authorize no response')){ this.reAuth() } }, async reAuth(){ // 提示用户授权 const [err2,confirmResult] = await uni.showModal({ content:'检测到您没有打开地址权限,是否去设置打开', confirmText:'确认', cancelText:'取消' }) // 如果弹窗异常,直接退出 if(err2) return // 如果用户点击了取消,则提示用户取消了地址授权 if(confirmResult.cancel) return uni.$showMsg('您取消了地址授权') // 如果用户点击了确认,则进入授权页面,让用户重新授权 if(confirmResult.confirm) return uni.openSetting({ // 对授权结果进行识别 success:(settingResult)=> { // 授权成功 if(settingResult.authSetting['scope.address']) return uni.$showMsg('授权成功,请选择地址') // 取消了授权 if(!settingResult.authSetting['scope.address']) return uni.$showMsg('您取消了地址权') } }) }

 

  >> 课程截图    

    

    >> 点击确认和取消时的结果信息

    

    >> 点击确认后,进入设置界面

    

    >> 设置界面返回后的结果

      

 >>05. 用户登陆: 前置条件,调用 getUserInfo 获取权限及相应的登陆参数

  > 界面样式

    

  >  布局及按钮事件:下面红色内容为固定写法,紫色部分为内部处理函数名,可自定义    

<template>
  <view class="login-container">
    <uni-icons type="contact-filled" size="100" color="gray"></uni-icons>
    <button type="primary" class="btn_login" open-type="getUserInfo" @getuserinfo="getUserInfo">一键登陆</button>
    <view class="tips-text">登陆后尽享更多权益</view>
  </view>
</template>

  > 点击后,可获取到相应的数据

   

    > errMsg 标识授权是否成功

   

   >> 关于微信了用户头像和昵称的事情,今天查了下,变了好多次了,

  >> 当前的情况是: 

     

  >> 当前处理方式

    a. 通过 wx.login 可以直接获取  code 

       

    b. 结合已经获取到的 code ,再加上APP的二个参数:appid,secret , 封装成一个请求参数对象,

      Get 方式调用:https://api.weixin.qq.com/sns/jscode2session  验证 code  的有效性; 

     验证成功后,表示登陆成功

      

    c.  样例 

      

      

methods: {
      async doTest() {
        // 调用 login 接口获取登录凭证(code)
        const [err, tmpRtn] = await uni.login()
        console.log(tmpRtn)
        if (err || tmpRtn.errMsg !== "login:ok") return uni.$showMsg('登陆失败')
        //登录凭证校验。通过 wx.login 接口获得临时登录凭证 code 后传到开发者服务器调用此接口完成登录流程
        // 此处直接向微信服务端发起请求
        // 配置请求参数: grant_type为固定定法
        const req = {
          appid: '----小程序的 APPID----',
          secret: '----小程序的密钥----',
          js_code: '---- login 接口返回的 code----'
          grant_type: 'authorization_code'
        }
        // 发起请求
        uni.request({
          url: 'https://api.weixin.qq.com/sns/jscode2session',
          method: 'GET',
          data: req,
          success: res => {
            console.log(res)
          }
        })
      }
    }

 

   >> login 请求到的 code ,有效期 5分钟

    

  >> jscode2session 接口验证 code 有效性

    

    >>参数说明如下

    

   >> 小程序登陆流程(官方)

    

 

 

 

    

 

 

 

 

 

   

  

 

标签:uniapp,code,return,err,03,授权,uni,login,黑马
From: https://www.cnblogs.com/jieling/p/17486583.html

相关文章

  • 黑马程序员Java教程学习笔记(一)
    文章目录黑马程序员Java学习笔记Java版本Java语言的跨平台原理JRE和JDKJDK的下载和安装HelloWorld案例注释关键字常量数据类型标识符类型转换运算符字符"+"操作字符串"+"操作赋值运算符自增自减运算符关系运算符逻辑运算符三元运算符案例:两只老虎案例:三个和尚数据输入案例:三个和尚......
  • 黑马程序员Java教程学习笔记(五)
    文章目录黑马程序员Java教程学习笔记(五)日期时间:Date、SimpleDateFormat、CalendarJDK8开始新增日期API包装类正则表达式Arrays类选择排序、二分查找Lambda表达式集合概述、Collection集合的体系特点Collection常用API、遍历方式、存储自定义类型对象常见数据结构List系列集合、集......
  • [20230616]One Deadlock of 'row cache lock' and 'library cache lock'.txt
    [20230616]OneDeadlockof'rowcachelock'and'librarycachelock'.txt--//链接http://ksun-oracle.blogspot.com/2023/06/one-deadlock-of-row-cache-lock-and.html演示一个有趣的测试.--//他测试采用cluster表,我估计普通表这样操作不会出现这样的情况,先重复作者的测试看......
  • 修改 $_SERVER['HOME']
     PHP升级到8.2版本后,print_r($_SERVER);发现多了[HOME]=>/var/wwwphpinfo()函数中的Environment项也有HOME/var/www推测$_SERVER['HOME']调用了apache用户www-data的主目录/var/www该目录可以在/etc/passwd中修改nano/etc/passwd找到www-data用户梭织的......
  • 智能风扇语音控制新方案,高品质语音识别芯片NRK3303
    随着人工智能技术的发展,人们可以使用语音助手随时随地进行语音控制电子设备。而针对风扇这种家居电器,智能语音控制的方案相对成熟,受到了越来越多用户的青睐。为了更好地提升用户体验,新一代智能风扇方案引进了语音识别芯片技术,使得用户可以更加方便地进行语音控制。语音识别芯片技术......
  • 03后台主页模块设计,simpleui后台管理,轮播图接口,跨域问题详解,前台主页功能
    1后台主页模块设计#1创建后台主页模块(一个模块一个app)python../../manage.pystartapphome#2在models中写轮播图表 -写一个基表BaseModel-写轮播图表#3迁移###BaseModel##########fromdjango.dbimportmodelsclassBaseModel(models.Model):creat......
  • 智能风扇语音控制新方案,高品质语音识别芯片NRK3303
    随着人工智能技术的发展,人们可以使用语音助手随时随地进行语音控制电子设备。而针对风扇这种家居电器,智能语音控制的方案相对成熟,受到了越来越多用户的青睐。为了更好地提升用户体验,新一代智能风扇方案引进了语音识别芯片技术,使得用户可以更加方便地进行语音控制。语音识别芯片技......
  • 'utf-8' codec can't decode byte 0xbc in position 1182: invalid start byte
    2.如果是字符集出现错误,建议多选择几种字符集测试一下:选择的经验是:如果是爬取到的网页文件,可以查看网页文件的meta标签下的charset属性值。例如:<metacharset="UTF-8">1也可以使用notepad++打开,查看下右下角的部位,会指示该文件是那种编码。 用一个例子来演示会更加清晰......
  • 【uniapp框架错误】[ERROR] reportJSException >>>> exception function:createInstance,
    【uniapp框架错误】[ERROR]reportJSException>>>>exceptionfunction:createInstance,exception h5端运行正常,一用基座连接手机端就会报这个错误reportJSException>>>>exceptionfunction:createInstanceContext,exception:whitescreencausecreateinstanceContextfaile......
  • uniapp实现app端跳转微信小程序电子签
    文档地址:https://cloud.tencent.com/document/product/1323/78886正式环境:电子签小程序Appid:wxa023b292fd19d41d。电子签小程序原始ID:gh_da88f6188665。//正式服app调用的id电子签小程序合同详情页:path:pages/guide?from=app&to=CONTRACT_DETAIL&id=${flowId}&name=&pho......