开发者社区> 问答> 正文

请问dd.ready有时调不起来是什么原因

请问dd.ready()有时调不起来是什么原因?有时突然就调不起来了,过了一阵自己就好了。请问是什么配置弄错了么

展开
收起
周义清 2016-11-09 10:32:13 6764 0
2 条回答
写回答
取消 提交回答
  • 回 1楼钉钉-久铖的帖子
    dd.error里试过了,没走dd.error

    -------------------------

    回 3楼钉钉-久铖的帖子
    我怎么下载开发版的钉钉

    -------------------------

    回 5楼钉钉-久铖的帖子
    还有一个问题,我上哪下载完整版的dingtalk.js

    -------------------------

    回 7楼钉钉-久铖的帖子
    我就是按照文档的步骤做的,这个问题是正常情况下是没问题的,但有时就突然调不起来了,过一段时间就好了,说明代码没有问题,如果代码有问题的话一次都不会调用成功的。

    -------------------------

    Re请问dd.ready有时调不起来是什么原因
    <!DOCTYPE html >
    <%@ page language =" java " import =" java.util.* " contentType =" text/html;charset=utf-8 "%>
    < html >
    < head >
    < meta http-equiv= Content-Type content= "text/html;charset=utf-8" >
    < meta charset= "gbk" >
    < meta http-equiv= "X-UA-Compatible" content= "IE=edge,chrome=1" >  
    < meta content= "yes" name= "apple-mobile-web-app-capable" />
    < meta content= "black" name= "apple-mobile-web-app-status-bar-style" >
    < meta content= "telephone=no" name= "format-detection" />
    < meta content= "yes" name= "apple-touch-fullscreen" />
    < meta name= "viewport" content= "width=device-width,initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0,user-scalable=no" />
    < meta name= "viewport" content= "width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0" >
    < title ></ title >
    < script type= "text/javascript" >
    var _config = <%= com.alibaba.dingtalk.openapi.demo.auth.AuthHelper. getConfig (request) %>;
    </ script >
         < script src= "js/zepto/zepto_1.1.6.js" ></ script >
         < script type= "text/javascript" src= "js/dingtalk.js" ></ script >
       < script >
           function AjaxGet(url, onsuccess, onerror) {
              $.ajax({
                   url: url,
                   dataType: "json",
                   contentType: 'application/json',
                   type: "get",
                   beforeSend: function(request) {
                  },
                   error: function(xhr, status, error) {
                       if (onerror)
                          onerror(error);
                  },
                   success: function(data, status, xhr) {
                       if (onsuccess) {
                          onsuccess(data);
                      };
                  }
              });
          };

        dd.config({
         agentId : _config.agentid,
         corpId : _config.corpId,
         timeStamp : _config. timeStamp,
         nonceStr : _config.nonceStr,
         signature : _config.signature,
         jsApiList : [ 'runtime.info', 'biz.contact.choose',
         'device.notification.confirm', 'device.notification.alert',
         'device.notification.prompt', 'biz.ding.post',
         'biz.util.openLink' ]
        }
        ); //  console.log("222"); //      dd.error(function(error){
    //          /**
    //           {
    //              message:"错误信息",//message信息会展示出钉钉服务端生成签名使用的参数,请和您生成签名的参数作对比,找出错误的参数
    //              errorCode:"错误码"
    //           }
    //           **/
    //          alert('dd error: ' + JSON.stringify(err));
    //      });
    //      logger.i("_config:" + JSON.stringify(_config));
        //  console.log(dd);
        dd.ready( function() {
    //        logger.i('dd.ready rocks!');     dd.runtime. permission.requestAuthCode({
         corpId: _config.corpId,
         onSuccess: function(result) {
             var code = result. code;
             var url = "/mobile/userinfo?code="+ code+ "&corpid="+ _config.corpId;
             AjaxGet( url, function(data, status, xhr){
                 // todo set url
                 var memberUrl = "http://***.***.***.***/wesurvey/wesurvey.getMemberInfo.do?userid="+data.userid;
                 AjaxGet( memberUrl, function(memberData,status,xhr) {
                     var member;
                     if(memberData.objs.length> 0){
                         member = memberData.objs[ 0];
                         if( member.remark. indexOf( '0') > - 1){
                             window. location = "setting.html?memberid="+ member. id+ "&roleid="+ member.remark + "&userid="+data.userid;
                        } else {
                             window. location = "surveys2.html?memberid="+ member. id+ "&roleid="+ member.remark + "&userid="+data.userid;
                        };
                    } else{
                         alert( "您无此模块权限,请与管理员联系!");
                    }
                }, function(){});
            }, function(){});
        },
         onFail : function(err) {}
        })
        });

    </ script >
    </ head >
    </ html >
    这是我的页面代码,有时dd.ready就不执行了
    2016-11-09 16:06:59
    赞同 展开评论 打赏
  • Re请问dd.ready有时调不起来是什么原因
    https://open-doc.dingtalk.com/docs/doc.htm?spm=a219a.7629140.0.0.2iOULZ&treeId=171&articleId=104910&docType=1
    检查一下是不是dd.error发生了

    -------------------------

    也有可能是你的页面的其他JS错误导致整个页的JS不能正常走下去。也可能是没下载好引用的dingtalk的js库。你可以用开发板的dingding调试看看

    -------------------------

    https://open-doc.dingtalk.com/docs/doc.htm?spm=a219a.7629140.0.0.0YChQH&treeId=171&articleId=104908&docType=1

    -------------------------

    你的问题在文档上就能解答了。墙裂建议你做之前先研究下文档。提高你的效率。避免等待阻塞。我所贴的链接也都是从文档上找,要么按照目录索引找找看,要么全局读一遍,要么去搜索。
    https://open-doc.dingtalk.com/docs/doc.htm?spm=a219a.7629140.0.0.BtF5Nd&treeId=171&articleId=104910&docType=1

    -------------------------

    建议你先缩小排查范围,先只剩下dd.config ,dd.ready。在无其他代码干扰时,如果OK的,再逐步放大。
    请尽量先通过排除和调试解决问题。可以先找身边的前端专家帮忙一起看看。
    如果最小范围都有问题,请帖一下前端页面。包含但不限于引用的包和代码。

    2016-11-09 15:56:52
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载