钉钉dd.ready中不能调用方法解决,钉钉微应用遇到的坑

钉钉dd.ready中不能调用方法解决

获取微应用免登授权码

官方代码:

dd.ready(function() {
    dd.runtime.permission.requestAuthCode({
        corpId: _config.corpId, // 企业id
        onSuccess: function (info) {
                  code = info.code // 通过该免登授权码可以获取用户身份
        }});
});

code虽然拿到了,但是遇到问题是info.code无法抛出来使用,只能在里面继续访问后台。

其中需要重新定义var axios = require('axios'),不然会报没有定义axios。

例如:

dd.ready(function () {
            dd.runtime.permission.requestAuthCode({
            corpId: 'dingd05db47515f6499cbc961a6cb783455b', // 企业id
            onSuccess: function (info) {
              console.log("info.code获取没问题")

              var axios = require('axios')
              axios.post('/v1/GetUserDetail', { AppCode: info.code }).then(resp => {
                if (resp && resp.status == 200) {
                  console.log("欢迎" + resp.data.name)
                 });
                }
              })
            }
          });
        });

 

原因是

在JSAPI官方文档中记录说,dd.ready命名空间中采用异步方式,在页面加载时候就先执行dd.ready命名空间中内容,以至于无法加载到页面中其他方法。

解决方法

在获取到code后,访问后台拿到需要用到信息,通过传参数形式,跳转到其他页面解决。

代码:

var axios = require('axios')
     axios.post('/v1/GetUserDetail', { AppCode: info.code }).then(resp => {
     if (resp && resp.status == 200) {
         console.log("欢迎" + resp.data.name)
         var params_name = resp.data.name
         if (params_name == '') {
             params_name = '未获取姓名'
         }
         that.$router.push({ name: 'orderingAdd', params: { name: params_name } });
     }
})

 

 

热门文章

暂无图片
编程学习 ·

mogodb日常工作记录

查询相关 db.getCollection(Examda_News_VisitLog).find({"newsId":"20061109480192959"})db.getCollection(Examda_News_VisitLog).find({"from":"xcx","share":{"$gt":0}}).limit(10); # status: "A"…
暂无图片
编程学习 ·

你的代码是否存在硬编码

硬编码:硬编码是指将可变变量用一个固定值来代替的方法。如果我们的代码中有大量的硬编码,之后再修改维护成本就会很高。代码的延展性就会很差。硬编码:if(a==2) return false; 不是硬编码 if(a==b) return true;减少硬编码的问题查看了很多的博客之后,发现大部分的人都会选…
暂无图片
编程学习 ·

Shiro框架简单使用

文章目录1. Shiro过滤器&标签简介Shiro过滤器Shiro的JSP标签2. Shiro登陆认证(一)使用认证过滤器目标实现3. Shiro登陆认证(二)完成登录认证(*)目标总结4. Shiro登陆认证(三)凭证匹配器-普通加密需求步骤总结5. Shiro登陆认证(四)凭证匹配器-加盐加密需求什么是加…
暂无图片
编程学习 ·

Java使用poi将office文件转为html

一、前言 功能需求:上传office文档,并提供文件在线预览。 解决方案:使用Aspose.cells.jar包,将文档转换为pdf格式; 使用libreOffice,将文档转换为pdf格式; 使用poi将文档转换为html格式。方案一:通过Aspose的方式,该功能是付费版,需要破解,所以是能抛弃。 方案二,使…
暂无图片
编程学习 ·

jackson的学习记录

Jackson对于date的反序列化只支持几种,如果不符合默认格式则会报一下错误 org.codehaus.jackson.map.JsonMappingException: Can not construct instance of java.util.Date from String value 2012-12-12 12:01:01: not a valid representation (error: Can not parse date &…
暂无图片
编程学习 ·

quartus ii 使用modelsim altera进行仿真

第一种:先随便写一个程序,有输入,有时钟,有输出再点击processing-->start-->start test bench template writer然后就会在modlsim的文件中生成一个.vt的文件 然后打开这个文件接下来就是再initial和always里面添加信号保存,再点击首先看仿真软件是不是modelsin-altera,再…
暂无图片
编程学习 ·

Android 8.0 蓝牙遥控器自动配对

本文要实现的是在 android 8.0 的平台上,蓝牙遥控器与TV自动配对,具体就是在TV端打开配对界面,TV端开始搜索远程蓝牙设备,按下遥控器按键让蓝牙遥控器进入对码模式,此时蓝牙遥控器就能作为一个远程蓝牙设备被发现,TV端扫描到这个远程蓝牙设备(蓝牙遥控器),就会自动进行…
暂无图片
编程学习 ·

中国互联网热衷造轮子!去哪儿网开源消息中间件QMQ,京东也搞JMQ

中国互联网热衷于“造轮子“!在Github上查看消息队列的时候,那个专栏就透露:京东已推出自己的消息队列产品 JMQ,并且将很快开源问世!之后,我很少留意过 JMQ 的消息。今天偶然之间,看到去哪儿网也搞了一个消息中间件 QMQ。根据去哪网的开发团队透露,QMQ 内部已经使用了 …
暂无图片
编程学习 ·

Go 结构体使用注意事项和细节

结构体使用注意事项和细节结构体的所有字段在内存中是连续的//结构体 type Point struct {x inty int }//结构体 type Rect struct {leftUp, rightDown Point }func main() {r1 := Rect{Point{1,2}, Point{3,4}}//r1有四个int, 在内存中是连续分布//打印地址fmt.Printf("…
暂无图片
编程学习 ·

Vue + Alioss前端上传图片

Vue + Alioss前端上传图片准备工作安装依赖js工具类封装使用end 准备工作 需要注册一个ali云申请accesskeys,具体的操作请参考 link. 安装依赖 npm install ali-ossjs工具类封装 let OSS=require(ali-oss);let client=new OSS({accessKeyId: 你创建的Bucket时获取的accessKey…
暂无图片
编程学习 ·

01初识HTML

网站建站的流程 整个网站的开发流程 1.访问网站,是通过域名去访问,也就是网址,需要注册域名 2.网址不好记忆,不会直接输入网址,通过网址去访问服务器,租用空间 3.网站建设(确定网站主题,搜集资料,规划网站,制作页面) 4.网站推广 5.网站维护web标准HTML是用于描述页面…
暂无图片
编程学习 ·

Maven setting 文件配置

Maven setting 文件配置<?xml version="1.0" encoding="UTF-8"?><!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additiona…
暂无图片
编程学习 ·

SCDPM2019服务器备份

SCDPM2019服务器备份 1.保护-新建-服务器2.选择你服务器要备份的文件夹3.保护组取名4.设置保持器、同步频率、恢复点时间(客户端最少是一小时备份一次,服务器最小时间能15分钟一次)5.默认下一步6.下一步7.默认即可8.创建组9.创建成功10.可以再监视下查看详细情况,是否报警、…
暂无图片
编程学习 ·

【python】三方包安装教程以requests包安装为例【通用教程】

【python】三方包安装教程以requests包安装为例【通用教程】一、在线安装二、本地安装1、包下载地址:2、官网搜索三方包名称3、选择相应的包。4、到对应的下载界面下载对应版本的安装包。5、然后在编辑器里面输入相应安装命令前言:此教程适用于requests包安装,也适用于其他三…
暂无图片
编程学习 ·

数据处理过程的潜在风险和应对逻辑

编者按:本文来自微信公众号“晨山资本”(ID:chenshancapital) 随着线上化、数字化、智能化的发展,万物互联时代的逐步到来,数据体量正在快速增长。而无论是个人隐私数据,还是企业数据,都承载着巨大的价值,数据泄露事件已成为安全领域最大的威胁之一。安全产品的价值和其…
暂无图片
编程学习 ·

2020年新版pycharm修改C盘中配置文件的方法

2020年新版pycharm修改C盘中配置文件的方法 pycharm在运行后会生成大量的配置文件并默认存入C盘占据了大量的空间,本文将讲述如何修改这些文件的储存位置。 在2020年后pycharm改变了默认的配置文件存储位置文件 2020前 2020后idea.system.path ${user.home}/.IntelliJIdea2020…
暂无图片
编程学习 ·

Docker学习笔记

docker学习笔记 环境Vmware 这个地方只是做下安装vmware备注:版本 15.5.6 build-16341506 linux 版本centos7.8 shell连接工具:finalShell刚安装时,突然发现shell工具连接不到虚拟机里,解决方案:使虚拟机使用NAT方式,然后在 centos7 /etc/sysconfig/network-scripts\if…
暂无图片
编程学习 ·

2020年前端面试题·一

2020年前端面试题一前端需要注意哪些SEO优化问题img 标签 title 属性和 alt 属性的区别浏览器渲染页面的流程三次握手和四次挥手CSS和JS的位置会影响页面的效率,为什么?重绘和重排对浏览器内核的理解HTTP 状态码cookie、localStorage、sessionStorage 的区别iframe 有哪些缺点…
暂无图片
编程学习 ·

CentOS7.4安装教程

Cent OS 7 x64下载地址:http://mirrors.163.com/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-2003.iso CentOS的镜像网站:http://mirrors.163.com/centos/ 或 http://mirrors.sohu.com/centos/ 1.双击桌面的VMware Workstation Pro图标。2.点击创建新的虚拟机3.点击下一步4.点击…