开发者社区> 问答> 正文

钉钉微应用开发调用JSAPI时提示这个,怎么处理?

钉钉微应用开发调用JSAPI时提示jsapi should be invoked after dd.ready callback,怎么处理?

展开
收起
冰激凌甜筒 2023-07-12 20:09:36 146 0
3 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    当在钉钉微应用开发中调用 JSAPI 时,可能会遇到以下提示错误:

    Copy
    {“errMsg”:“dd.error:HY0000;jsapi permission denied”}
    这个错误提示表示应用没有权限调用该 JSAPI 接口,可以尝试以下几种方法解决:

    检查 JSAPI 权限配置:在钉钉开放平台中,需要为应用配置相应的 JSAPI 权限,才能调用相应的 JSAPI 接口。请检查应用是否已经正确配置了相应的 JSAPI 权限。

    检查应用状态:请确保应用已经在钉钉开放平台中通过了审批,并且已经上线运行。如果您的应用处于审核中或者未上线状态,可能会出现该错误提示。

    检查 JSAPI 接口版本:请确保您调用的 JSAPI 接口版本与钉钉客户端版本匹配。如果应用调用了不支持的 JSAPI 接口版本,也可能会出现该错误提示。

    检查调用方式:请确保应用正确调用了 JSAPI 接口,并传入了正确的参数。如果您的应用调用了不支持的 JSAPI 接口或者参数错误,也可能会出现该错误提示。

    检查域名白名单:如果应用需要调用钉钉客户端外的接口,例如调用第三方服务接口,需要将相应的域名添加到应用的域名白名单中。请检查应用是否已经正确配置了域名白名单。

    2023-07-12 22:40:58
    赞同 展开评论 打赏
  • 当在钉钉微应用开发中调用JSAPI时,出现"jsapi should be invoked after dd.ready callback"的提示时,这通常是因为您尚未正确处理dd.ready回调函数。

    dd.ready是一个异步回调函数,在钉钉环境初始化完成后会被触发。在该回调函数内部,您可以安全地调用钉钉提供的JSAPI。

    以下是一种处理方式的示例代码:

    dd.ready(function() {
      // 在dd.ready回调函数内部调用JSAPI
      dd.device.notification.alert({
        message: 'Hello, DingTalk!',
        title: 'Alert',
        buttonName: 'OK',
        onSuccess: function() {},
        onFail: function() {}
      });
    });
    
    2023-07-12 21:10:28
    赞同 展开评论 打赏
  • 一般这个问题是由于调用的api未在dd.deady内执行导致。具体可以参考文档调用JSAPI组件注意:所有JSAPI组件的调用,必须在dd.ready里面执行。dd.ready(function() { // dd.ready参数为回调函数,在环境准备就绪时触发,jsapi的调用需要保证在该回调函数触发后调用,否则无效。dd.runtime.permission.requestAuthCode({ corpId: "corpid", onSuccess: function(result) { /{ code: 'hYLK98jkf0m' //string authCode }/ }, onFail : function(err) {} });});,此回答整理自钉群"钉钉开发者社区(互助群)"

    2023-07-12 20:17:18
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
+ 订阅
问答排行榜
最热
最新

相关电子书

更多
钉钉小程序——为工作方式插上翅膀 立即下载
钉钉客户端自动化的应用 立即下载
使命必达 —— 钉钉企业级 消息服务的机遇与挑战 立即下载