-
2021-12-02 18:02:58
- 综述
- 什么是钉钉小程序
小程序是一种全新的开发模式,是一种不需要安装即可使用的应用。钉钉小程序以办公社交app钉钉为载体,支持iOS、安卓等多种操作系统部署。
钉钉小程序开发使用AXML(钉钉修改过的HTML)、ACSS(基本等同于CSS)和JavaScript编写。小程序本质上属于系统的前端部分,需要通过HTTP协议与后端的服务器配合使用。
-
- 什么是企业内部应用
钉钉为企业和组织提供了很多基础办公应用例如审批、日志、视频会议等。企业可基于钉钉开放平台的能力,根据实际需要定制开发企业应用。
企业内部应用是企业基于钉钉的开放能力,开发个性化的办公应用供企业内部使用,例如将企业内部的HR、CRM、业务管理等系统接入钉钉。企业内部应用发布后,企业内部用户可以直接从钉钉工作台中打开、使用该应用。
更多相关内容 - 综述
-
钉钉小程序开发
2020-05-12 13:34:18钉钉的QuickStart,使用Java语言开发 1. 创建审批模板 ①登录OA管理后台,点击工作台-点击审批,进入审批管理后台 ②点击【创建新审批】,进入创建新审批页面,点击【自定义模板】 ③按照如下的表单样式,从控件库...钉钉的QuickStart,使用Java语言开发
1. 创建审批模板
①登录OA管理后台,点击工作台-点击审批,进入审批管理后台
②点击【创建新审批】,进入创建新审批页面,点击【自定义模板】
③按照如下的表单样式,从控件库拖入对应的控件,最后点击【保存并启用】。
注意,在浏览器url中查找process_code参数,服务端开发需用到。
表单样式见下图:
【行程明细】是明细控件,
【出差地点】是单行输入框,
【图片】是图片控件,
【开始时间,结束时间】是日期区间控件,
【出差人数】是数字控件,
【出差金额】是金额控件,
【出差同伴】是单选框控件(添加的时候,把选项改为A,B,C),
【交通工具】是单行输入框,
【出差事由】是多行输入框。
一定要是对应的组件,不然会出错。④设置完成保存,进入流程设计模块,设计审批流程。
目前发起审批实例接口支持两种模式,本篇quickstart采用“复用审批后台设置的审批流程模式”
服务端开发
服务端代码下载
git clone https://github.com/opendingtalk/eapp-corp-project.git
导入服务端代码并修改配置
更改服务端Java代码com.config.Constant.java文件
/** * 企业corpid, 需要修改成开发者所在企业 */ public static final String CORP_ID = "***"; /** * 应用的AppKey,登录开发者后台,点击应用管理,进入应用详情可见 */ public static final String APPKEY = "***"; /** * 应用的AppSecret,登录开发者后台,点击应用管理,进入应用详情可见 */ public static final String APPSECRET = "***"; /** * 数据加密密钥。用于回调数据的加密,长度固定为43个字符,从a-z, A-Z, 0-9共62个字符中选取,您可以随机生成 */ public static final String ENCODING_AES_KEY = "***"; /** * 加解密需要用到的token,企业可以随机填写。如 "12345" */ public static final String TOKEN = "***"; /** * 应用的agentdId,登录开发者后台可查看 */ public static final Long AGENTID = 111L; /** * 审批模板唯一标识,可以在审批管理后台找到 */ public static final String PROCESS_CODE = "***";
参数获取方法,请参考以下:
(1)CORP_ID可以在开发者后台-首页中获取到
(2)APPKEY、APPSECRET、AGENTID可在开发者后台-企业内部开发-小程序获取到
(3)ENCODING_AES_KEY和TOKEN可以按照注释来设置。
(4)PROCESS_CODE可以在【钉钉管理后台-审批-编辑表单-顶部URL】中找到。前端开发
前端代码下载
git clone https://github.com/opendingtalk/eapp-corp-project-fe
无需进行任何的修改直接运行就好。
整个流程下来,如果启动实例,手机上能收到审批通知,就代表启动成功!
-
关于钉钉企业内部小程序的开发(记一次钉钉小程序开发)
2020-06-08 16:17:08网上没有很多适用于钉钉小程序的ui组件库,能找到的可以用的大概是dingui-mini,但是没有说明文档,需要自己看源码 如果使用的是双屏,将开发工具放到副屏上后,切换回单屏,会显示不出开发工具,最好只放在主屏。...关于钉钉企业内部小程序的开发
写在前面,一些踩过的坑
- 网上没有很多适用于钉钉小程序的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 }) })
- 项目的发布
代码完成之后,可以直接在开发者工具右上角点击发布,就可以上传代码了。然后需要登录到开发者后台,选择刚发布的版本。这样,在手机端钉钉上就可以看到这个小程序
-
钉钉小程序开发1
2021-04-21 17:50:02文章目录钉钉小程序学习记录前言一、钉钉小程序二、使用步骤1.搭建应用环境 前言 小程序开发优点 1 轻量 便捷 2 开发成本低 3 用户集群大 4 封装好的小程序语言,语法简单 由于开发时,发现钉钉小程序教程较少,...钉钉小程序学习记录
学习记录
前言
小程序开发优点
1 轻量 便捷
2 开发成本低
3 用户集群大
4 封装好的小程序语言,语法简单
由于开发时,发现钉钉小程序教程较少,因此在开发过程中作为纪录。适用于小白。一、钉钉小程序
采用钉钉小程序的原因:
1 钉钉作为一中国企业管理而生的企业应用,用户集群大
2 钉钉拥有完整的企业组织架构,无需其他应用人员导入
3 钉钉提供丰富的API接口供开发者使用
4 拥有监控平台更好管控API和数据的调用,实现实时监控,及时发现问题二、使用步骤
1.搭建应用环境
本次将钉钉小程序作为前端
下载工具:
1 java
2 小程序开发者工具为开发工具小程序开发者工具下载地址
此外钉钉开发者,提供接口调试工具,方便开发者调用API调参。- 登陆钉钉后台钉钉后台
创建一个钉钉组织或者成为钉钉组织管理员
2.
- 在弹出的创建应用页面中填写基本信息,然后单击确定创建。
应用类型:选择小程序。
开发方式:选择企业自助开发。
- 应用创建完成后,在基础信息页面,复制应用的AppKey和AppSecret备用。
5.
单击开发管理进入开发管理页面,然后单击修改,并根据以下内容配置开发信息。
服务器出口IP:输入调用钉钉服务端API时使用的IP即企业服务器的公网IP,多个IP请以英文逗号","隔开,支持带一个*号通配符的IP格式。
本教程设置为本机的公网IP:30.40.xx.xx。
PC端首页地址(可选):输入在PC端钉钉工作台上打开本应用的地址。链接地址必须以http或https开头。
本教程设置为:https://ding-doc.dingtalk.com/。
管理后台地址(可选):输入组织管理员在钉钉管理后台访问该应用的地址。
6 单击人员管理,然后单击添加人员添加开发人员。
单击安全中心,然后单击添加添加一个HTTP安全域名。当小程序的前端与服务端需要进行网络通信时,需要设置安全域名。小程序前端只能通过已设置的安全域名(或IP)与服务端进行网络通信。当安全域名更新时,需要在小程序开发工具重新打包上传版本,设置的域名才会生效。
安全域名是后端服务部署的服务器的公网IP或域名,本教程输入127.0.0.1。
单击权限管理进入权限管理页面,然后根据以下配置添加接口调用权限。
权限范围选择全部员工,然后选择通讯录管理。选择通讯录部门信息读权限和通讯录部门成员读权限,然后单击申请权限。
之后可以在小程序开发者工具中创建一个简单的demo
创建好后的目录
模拟器效果:
1 app.js全文逻辑
用来设置全局变量,以及页面配置
配置路由,创建一个新的页面必须,在这配置相对路径
页面导航栏的设置
存放照片
页面,主要在这编写代码每个页面由这几个组成
公共资源存放 - 登陆钉钉后台钉钉后台
-
前后端分离架构的钉钉企业应用Demo(多语言版本)
2018-09-05 19:12:18前后端分离架构的企业应用Demo,前端可选择jQuery、Vue.js、React native 后端可选择Java、NodeJs -
高效钉钉小程序开发丨详解Hello,dingtalk
2020-07-25 14:25:46前一节我们对钉钉小程序开发有了一定的了解,我们可以修改标题以及页面内容。本节我们将来对整个目录结构做详细说明。 钉钉小程序分为两层:app层(小程序的全局配置)和page层(页面详细配置)。 app层详解 在... -
钉钉小程序自定义组件开发
2020-04-12 12:06:35以下是我自己开发钉钉小程序组件的经验 新建组件页面 你的组件想放在哪个目录就在那个目录上鼠标右击,选择新建小程序组件 然后打开你刚建的小程序组建的js文件就会发先里面有一套代码,类似这样的 Component({ ... -
钉钉小程序与微信小程序的异同
2019-09-09 15:57:31前言 微信属于社交软件,微信从2017-01-09正式推出小程序发展到今天,微信小程序与我们的生活已经密切相关,例如:交通、...钉钉在2018年9月推出了E应用,可以理解为钉钉小程序的初代,在2019年6月中旬正式推出了钉... -
钉钉小程序bug日记
2021-11-16 22:41:15毕业后找 (玩)了5个月的工作 终于在本地的药企找到一份工作,成为了光荣的软件工程师助理,主管告诉我要开发钉钉小程序给企业人事用。 入职前几天,出于预习技能...终于安装完钉钉小程序开发环境 于是,一个并不 愉快 -
使用TypeScript开发微信小程序的方法
2020-12-31 15:25:51TypeScript是一种由微软开发的自由和开源的编程语言。它是JavaScript的一个超集,而且本质上向这个语言添加了可选的静态类型和基于类的面向对象编程。安德斯·海尔斯伯格,C#的首席架构师,已工作于TypeScript的开发... -
钉钉小程序,内网穿透问题
2020-12-23 12:46:35最近在做钉钉小程序(第三方企业应用)的一个项目,由于是第一次做钉钉小程序,所以在开发过程中遇到很多坑。目前钉钉小程序的资料相较于微信小程序较少,在开发中遇到问题时,网上的答案很少,很多也都是照搬开发文档... -
开发一个钉钉小程序和微信小程序签到APP的具体学习报告
2020-03-15 22:11:42【我想说的话:开发这个东西的初衷是为了想将所学融入日常生活中,恰好学长开发了一个i重科,我想挑战一下结合人工智能的签到app会是什么样的体验。在这个过程中我面临了很多困难,一度怀疑自己,但是现在我还是继续... -
钉钉小程序通过 Canvas 将页面生成图片并保存到本地相册
2021-06-27 13:37:15线上支付场景:销售同学先在 CRM 钉钉小程序中录入充值信息后生成订单,然后系统生成支付宝或者微信付款码,销售同学将付款码页面生成的图片发送给客户,客户付款后即完成充值流程。 整个充值流程优化上线后,大大... -
IT服务-钉钉小程序定制开发-克莱(Collection)
2021-02-27 23:23:46IT服务-钉钉小程序定制开发-克莱(Collection),凭借领先的人工智能与知识图谱技术,通过客观、真实的数据,创新、完善的技术解决方案,帮助企业获得敏锐的洞察力及卓越的运营能力,钉钉小程序定制开发,赋能智慧... -
钉钉开发简介
2020-07-09 16:18:41前言 年前有个想法:获取外勤员工的考勤数据,根据考勤的时间、地点来判断员工是否准时达到了目标地点。今天在这里进行一个总结...需要掌握一门后端语言,以使用钉钉官方的后端API。如果说官方没有对应的后端的... -
「开发者说」自动化设备管理上钉钉,“源创食堂“小程序开发实践
2022-02-23 11:25:44食堂管理上钉钉,自动化设备数据与钉钉打通的小程序开发实践 -
小程序下一破局点?钉钉小程序卡片,应用与平台的深度集成
2021-12-22 15:15:2220秒了解小程序卡片 案例1:幸福大巴一键抢座 “幸福大巴”是阿里员工在域内使用的城际客运功能,但因为需要来回跳转VPN工具和H5页面,在用户体验上带来了一定的障碍 抢座流程对比: 以前H5页面的抢座流程 ... -
钉钉日志是使用什么开发的?
2020-03-30 19:06:32里面用到哪些技术?谁能给分析分析 -
DingTalk「开发者说」第8期 钉钉微应用开发实战
2022-03-25 16:13:09DingTalk「开发者说」是钉钉开发者最新上线的开发者栏目,联合阿里云ACE团队,分享钉应用开发解决方案、技术更新、实战技巧,致力于成为钉钉与开发者的桥梁与纽带,让更多的钉钉开发者传播技术、提升技能、分享观点... -
ngrok内网穿透工具搭建,方便微信公众号,小程序、钉钉等开发【已投入使用】
2022-04-27 16:28:56ngrok内网穿透功能搭建,已投入使用 -
钉钉小程序sjs日期对象
2022-05-20 11:12:04钉钉小程序中的 sjs 相当于微信小程序的 wxs,可以在 axml 中引入 js 方法。 sjs 中的数据类型和原生 js 大致相当,详情可以查阅链接: https://open.dingtalk.com/document/orgapp-client/data-type 注意 但是需要... -
钉钉企业应用Demo(nodejs版)
2018-09-05 19:06:02钉钉企业微应用官方Demo,用NodeJs语言开发,封装好了各种库,方便二次开发 -
DingTalk「开发者说」 5分钟开发钉钉应用
2022-03-07 14:21:18DingTalk「开发者说」是钉钉开发者最新上线的开发者栏目,联合阿里云ACE团队,分享钉应用开发解决方案、技术更新、实战技巧,致力于成为钉钉与开发者的桥梁与纽带,让更多的钉钉开发者传播技术、提升技能、分享观点... -
小程序云开发还需要服务器吗
2021-08-10 02:59:38小程序云开发还需要服务器吗 内容精选换一换按照翻译方式的不同,高级语言通常可以分为两类:一类是编译翻译,一类是解释翻译,分别对应着编译型语言和解释型语言。编译型语言典型的如C、C++语言,都属于编译型语言... -
钉钉小程序SJS参数之正则坑
2022-05-12 16:41:11function total(t){ const regexp = getRegExp("-","g"); t=t.replace(regexp,"/"); let date=getDate(t); let num=parseInt(getDate().getTime()/1000)-...正则只能以getRegExp方法获得,无法使用//g 或者. -
钉钉企业应用Demo(golang版)
2018-09-05 19:03:55钉钉企业微应用官方Demo,用golang语言开发,封装好了各种库,方便二次开发 -
C#-钉钉开发H5应用-事件订阅
2022-04-13 18:39:49然后就是需要一个配置一个可以公网可访问的服务器,解释以下为什么这样,因为咱们要做的这个事件订阅这个功能是钉钉访问你的回调函数,所以就需要公网可访问,因为使用的是C#语言配置的,所以直接使用的window服务器... -
小程序技术选型-开发+UI框架汇总
2019-11-25 09:13:25现在小程序开发是越来越火了,除了微信小程序,还有阿里、百度等,都在自己的APP中内置了小程序。而且现在市场上对于小程序的需求也是很多的,跟专门的APP比起来,开发成本低,功能也相近,一般情况而言,可以使用...