关于钉钉企业内部小程序的开发

写在前面,一些踩过的坑

  • 网上没有很多适用于钉钉小程序的ui组件库,能找到的可以用的大概是dingui-mini,但是没有说明文档,需要自己看源码
  • 如果使用的是双屏,将开发工具放到副屏上后,切换回单屏,会显示不出开发工具,最好只放在主屏。(当然我不知道是不是只有我的电脑是这样的)
  • 我向官方提过问题,关于是否可以点击工作通知跳转到钉钉小程序。当时官方的回复是可以实现的,但是给我的链接我点进去是空白的

分类

钉钉小程序总共分为四类,企业内部应用第三方企业应用第三方个人应用移动应用接入。根据需求自己选择创建。附上链接钉钉开发平台

企业内部应用

面向企业内部开发人员和定制服务商,自主开发内部应用或工作台,供企业或组织内部使用。

  1. 创建应用
    登录公司的开发者后台,选择后台开发。左侧有不同的类别,选择企业内部开发中的小程序,然后创建应用,填好一些必填项。例如,名称,图标,地址等。
  2. 管理
    创建好应用之后,可以在后台设置好一些接口权限,开发人员设置等。例如手机号获取userid,手机号码信息等。不开权限,调用接口会获取不到数据。
  3. 开发者工具
    钉钉开发者工具和支付宝小程序是同一个,每次打开都要登录钉钉,然后在右上角选好企业内部应用和自己的项目。
    钉钉开发者工具基本和微信开发者工具类似,项目中的文件也基本一致。不过微信的页面后缀是.wxml,样式文件后缀是.wxss。而钉钉的是.axml和.acss
  4. 部分代码
  • 封装request
https(options) {
  dd.showLoading();
  const { url,method, data, headers } = options
  return new Promise((resolve,reject) => {
    dd.httpRequest({
      url: this.globaldata.serverurl + url || '',
      dataType: method || 'POST',
      data: data || {},
      headers: headers || {},
      success:function(res) {
        resolve (res)
      },
      fail:function(res) {
        reject(res)
      },
      complete: (res) =>{
        dd.hideLoading()
      }
    })
  })
  • 处理时间戳
function timestampToTime(timestamp) {
  var date = new Date(timestamp );//时间戳为10位需*1000,时间戳为13位的话不需乘1000
  var Y = date.getFullYear() + '-';
  var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
  var D = (date.getDate() < 10 ? '0' + date.getDate() : date.getDate()) + ' ';
  var h = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':';
  var m = (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()) + ':';
  var s = (date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds());
  return Y + M + D + h + m + s;
}
  • 获取免登录码(小程序很多api都需要用到免登录码)
 // 获取免登录码
    dd.getAuthCode({
      success:function(res){
        // console.log(res.authCode)
        app.https({
          url:'xxx.xxxx.xx',  //接口地址
          data:{
            code:res.authCode, 
            //下面两项是从开发者后台获取到的,该企业内部项目固定的AppKey和AppSecret
            appKey:'xxxxxxxxxxxxxxxxxxxxxxx',
            appSecret:'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
            status:0
          }
        }).then(res => {
          console.log(res)
        })
      },
      fail:function(err){
        // console.log(err)
      } 
    });
  • 获取元素高度
// 获取高度,动态赋值给scroll-view
dd.createSelectorQuery().select('#sw').boundingClientRect().exec((res) => {
  this.setData({
    height:res[0].height - 10
  })
})
  1. 项目的发布
    代码完成之后,可以直接在开发者工具右上角点击发布,就可以上传代码了。然后需要登录到开发者后台,选择刚发布的版本。这样,在手机端钉钉上就可以看到这个小程序

更多推荐

关于钉钉企业内部小程序的开发(记一次钉钉小程序开发)