钉钉微应用开发调用JSAPI时提示jsapi should be invoked after dd.ready callback,怎么处理?
当在钉钉微应用开发中调用 JSAPI 时,可能会遇到以下提示错误:
Copy
{“errMsg”:“dd.error:HY0000;jsapi permission denied”}
这个错误提示表示应用没有权限调用该 JSAPI 接口,可以尝试以下几种方法解决:
检查 JSAPI 权限配置:在钉钉开放平台中,需要为应用配置相应的 JSAPI 权限,才能调用相应的 JSAPI 接口。请检查应用是否已经正确配置了相应的 JSAPI 权限。
检查应用状态:请确保应用已经在钉钉开放平台中通过了审批,并且已经上线运行。如果您的应用处于审核中或者未上线状态,可能会出现该错误提示。
检查 JSAPI 接口版本:请确保您调用的 JSAPI 接口版本与钉钉客户端版本匹配。如果应用调用了不支持的 JSAPI 接口版本,也可能会出现该错误提示。
检查调用方式:请确保应用正确调用了 JSAPI 接口,并传入了正确的参数。如果您的应用调用了不支持的 JSAPI 接口或者参数错误,也可能会出现该错误提示。
检查域名白名单:如果应用需要调用钉钉客户端外的接口,例如调用第三方服务接口,需要将相应的域名添加到应用的域名白名单中。请检查应用是否已经正确配置了域名白名单。
当在钉钉微应用开发中调用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() {}
});
});
一般这个问题是由于调用的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) {} });});,此回答整理自钉群"钉钉开发者社区(互助群)"
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。