关于钉钉企业内部小程序的开发
写在前面,一些踩过的坑
- 网上没有很多适用于钉钉小程序的ui组件库,能找到的可以用的大概是dingui-mini,但是没有说明文档,需要自己看源码
- 如果使用的是双屏,将开发工具放到副屏上后,切换回单屏,会显示不出开发工具,最好只放在主屏。(当然我不知道是不是只有我的电脑是这样的)
- 我向官方提过问题,关于是否可以点击工作通知跳转到钉钉小程序。当时官方的回复是可以实现的,但是给我的链接我点进去是空白的
分类
钉钉小程序总共分为四类,企业内部应用、第三方企业应用、第三方个人应用和移动应用接入。根据需求自己选择创建。附上链接钉钉开发平台
企业内部应用
面向企业内部开发人员和定制服务商,自主开发内部应用或工作台,供企业或组织内部使用。
- 创建应用
登录公司的开发者后台,选择后台开发。左侧有不同的类别,选择企业内部开发中的小程序,然后创建应用,填好一些必填项。例如,名称,图标,地址等。 - 管理
创建好应用之后,可以在后台设置好一些接口权限,开发人员设置等。例如手机号获取userid,手机号码信息等。不开权限,调用接口会获取不到数据。 - 开发者工具
钉钉开发者工具和支付宝小程序是同一个,每次打开都要登录钉钉,然后在右上角选好企业内部应用和自己的项目。
钉钉开发者工具基本和微信开发者工具类似,项目中的文件也基本一致。不过微信的页面后缀是.wxml,样式文件后缀是.wxss。而钉钉的是.axml和.acss - 部分代码
- 封装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
})
})
- 项目的发布
代码完成之后,可以直接在开发者工具右上角点击发布,就可以上传代码了。然后需要登录到开发者后台,选择刚发布的版本。这样,在手机端钉钉上就可以看到这个小程序
更多推荐
关于钉钉企业内部小程序的开发(记一次钉钉小程序开发)
发布评论