钉钉小程序填坑记

第一章:什么是钉钉小程序

第一节:小程序简介

在钉钉内运行的"小程序"叫做E应用,后期小程序是来自于E应用的全新版本。

小程序是一种全新的开发模式,让移动开发者通过简洁的前端语法写出Native级别的性能体验,并支持iOS、Android等多端部署。
小程序暂不支持PC端部署,如果应用需在PC端上使用,PC端可暂时使用H5微应用开发方式。

第二节:小程序的分类

企业内部开发

指“开发企业内部应用”,供钉钉企业内部的人员使用。企业可以选择由企业内部的开发者进行开发,或者由企业授权定制服务商进行开发。
现阶段使用的应用类型。

开发方式

企业内部开发有2种不同的开发方式,分别为企业内部自主开发和授权给服务商开发。

开发方式
服务商开发

定制服务开发可委托服务商进行开发,只需输入定制服务商的corpid,应用一经授权,服务商即可在应用内使用以上权限。

第三方企业应用

基于钉钉的开放能力开发应用,并上架至钉钉应用市场,供钉钉上的企业/组织使用,需要钉钉团队审核。

第三方企业应用

第三方个人应用

第三方个人应用与企业内部应用、第三方企业应用不同,个人应用主要是提供给钉钉上的个人用户来使用,不需要企业进行授权开通,也无需感知企业信息,只需要个人进行授权即可使用。
仅供开始阶段测试,无法发布上架

创建应用
  • 与内部开发应用的上线区别


    上线区别

钉钉云推送

钉钉云推送是替换HTTP协议推送的升级版本,是钉钉开放平台结合阿里云独创的一套推送方案。钉钉云推送在保障数据安全的前提下,极大地简化了推送协议,减少了数据传输次数,提高了数据传输速度,提升了推送的稳定性。
钉钉云推送不但支持钉钉和ISV之间的数据传输,也能够支持钉钉和企业开发者之间的数据传输,并且支持开发者的本地开发调试和线上部署运维,极大地简化了ISV和企业接入钉钉的流程。

什么是ISV?ISV和服务商有什么区别

1、ISV(独立软件开发商):是指具有自主研发的系统产品,有自己品牌的设备或者具备与其他品牌设备打通能力,具备解决方案系统对接开发能力的公司。
2、服务商:是指没有系统产品,不具备或者不愿意进行解决方案系统对接开发,但是拥有极强的线下商务推广能力的公司。

HTTP推送

HTTP推送

第二章:钉钉小程序与H5微应用有什么区别

钉钉开放平台支持小程序和H5微应用两种开发类型。

小程序和H5微应用的区别

灰度发布支持第三方企业应用和第三方个人应用,在开发后台可进行选择。

第三章:如何搭建、发布和删除钉钉小程序(企业内部)

开发应用前,开发者需要有一个钉钉开发者组织来开发应用,可使用已存在的钉钉组织,或注册新的钉钉组织。
开发者需要登录开发者后台,进行创建应用、发布应用等各种相关操作。主管理员可直接登录使用,如果要加入其他开发人员,需要主管理员登录OA管理后台,将开发同学设置为子管理员并授予开发者后台的权限

第一节:添加应用(企业内部)

注意:应用Logo大小需要为200x200,图片最大为2MB,否则无法上传。

填写基本信息

配置开发信息

第二节:添加应用(第三方企业应用)

测试应用

注意:选择后不能进行修改,测试应用不受服务器白名单限制,无法发布上架,仅供测试使用

测试应用

正式应用

注意:正式应用需要上传《产品设计说明》和《商业模式说明》。
审核时间:钉钉团队将在2个工作日内完成审核,审核结果显示在该页面,同时通过钉钉小秘书通知创建人。

正式应用

第三节:搭建小程序

设置开发人员

在创建应用后,默认会把当前创建应用的操作者添加为开发人员,若应用有多个开发者,我们可以通过手机号码添加该应用的开发者。添加开发人员后,该开发人员可使用开发者工具进行应用开发。

设置安全域名

小程序需要事先设置一个或多个服务端安全域名(或IP),小程序前端只能通过这些安全域名(或IP)与服务端进行网络通信。

设置接口权限

钉钉开放了丰富的服务端接口能力,开发者可以使用这些接口能力,实现企业系统与钉钉的集成打通。在调用接口前,需要先申请并设置接口调用权限,包括通讯录权限、外部联系人权限、审批权限及内购开发权限等。


设置接口权限

项目创建

  • 下载钉钉小程序开发者工具IDE,安装并打开。打开IDE后,选择新建项目或者打开项目(比如已有项目或Demo)。

  • 选择要开发的应用类型“钉钉”-“企业内部应用”;
    [图片上传中...(image.png-88f22d-1585821481549-0)]


    选择项目

第四节:发布小程序

在小程序开发者工具IDE,点击上传版本。上传成功后,在开发者平台应用的版本管理里可以看到版本列表。


发布小程序

发布有四个版本:

  • 开发版本
    开发版本只能在IDE里模拟器里打开,需要添加开发人员。

  • 体验版本
    开发版本可以设为体验版本,此时会生成一个体验二维码,在企业内部的人员可以扫码体验。

  • 线上版本
    开发版本或者体验版本经过测试后没有发现错误,此时可以发布到线上,生成线上版本(线上版本发布更新有一定的延迟),在钉钉手机工作台上可以打开体验。

  • 灰度版本(第三方企业应用和第三方个人应用
    可以按照企业维度进行版本灰度,配置需要灰度的企业的corpId即可。只有在灰度企业名单里面的企业才能通过授权开通预览该灰度版本应用。

第五节:删除小程序

企业内部应用

  • OA后台-工作台-应用管理只能停用应用无法删除。如果您希望删除应用(注意,请谨慎操作,确保应用无宇昂使用后再进行删除),可以通过以下操作路径尝试删除:

    (1)打开移动端钉钉-打开工作台-切换到应用所在企业-点击右上角进入应用市场-页面下方”已开通“-页面上方”自建应用“


    打开自建小程序

    (2)点击"..."-设置-停用,勾选同时解除授权、删除应用-点击”停用“


    停用小程序

第三方企业应用

(1)打开移动端钉钉-打开工作台-切换到应用所在企业-点击右上角进入应用市场-页面下方”已开通“-页面上方”应用“


打开已开通应用

(2)点击"..."-设置-停用,勾选同时解除授权、删除应用-点击”停用“


停用小程序

第二章:钉钉小程序基础语法

钉钉小程序代码结构与微信小程序基本一致。

IDEA界面

文件结构

app.json

第三章:钉钉小程序能做到什么

现阶段钉钉开发的API并不多,只能做一些基础功能,如下:

第一节:原生组件

包含视图容器、基础内容、表单(Button、Form、Label、Input、Textarea、Radio、Checkbox、Switch、Picker)、导航、媒体(Image)、画布(Canvas)和web-view(在小程序内打开外部页面)。

第二节:JSAPI

包含网络(网络请求、上传下载、WebSocket)、多媒体(图片、录音管理、背景音频管理、视频)、免登、界面、位置、缓存、设备(系统信息、网络状态、剪切板、蓝牙、震动)和开放接口。

第四章:钉钉小程序爬坑

版本无法强制更新

注意:并不是发布线上版本后,用户就会立即使用到最新版的小程序。因为钉钉客户端存有旧版本小程序包缓存,用户在使用小程序时会优先打开本地的小程序包,钉钉客户端在某些特定的时机去更新最新的小程序包。

无法强制更新版本

部分API无法满足需求

位置

钉钉小程序API提供了dd.getLocation(获取用户当前的地理位置信息)dd.openLocation(使用内置地图查看位置)
但这两个API只能获取用户自身的定位,无法调起内置地图进行中心点修改和其他地图功能。

网络-上传下载

钉钉小程序API提供了dd.uploadFile(上传文件)dd.downloadFile(下载文件)
但是下载文件并未提供保存到本地的API,只提供了一个临时地址,所以如果有需要文件下载的功能,此API无法满足。

缓存报错

钉钉小程序提供了本地缓存的功能,一般来说,如果用户在调用缓存时没有获取到相应的缓存数据,则会报错并显示undefined。而钉钉小程序如果是在页面渲染时调用了缓存,并且无法获取到缓存的时候,则会阻止代码接下去的渲染,导致页面空白,而调试器并无任何报错。
此情况一般出现在真机测试上。

页面缓存

例子:将新增和详情写在同一个表单页,如果先点击了详情,之前再点击新增,会发现之前详情的数据还停留在页面上。
所以如果要集合在同一个页面,需要注意进入页面时是否需要重置表单数据。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,440评论 5 467
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,814评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,427评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,710评论 1 270
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,625评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,014评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,511评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,162评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,311评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,262评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,278评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,989评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,583评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,664评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,904评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,274评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,856评论 2 339

推荐阅读更多精彩内容

  • 6月上旬,钉钉企业级小程序正式上线。 钉钉小程序是E应用的升级 2018年9月,继支付宝、淘宝上线小程序后,钉钉作...
    何玺阅读 563评论 0 0
  • 毛利率法是指根据本期销售总金额乘以上期实际(或本期计划)毛利率匡算本期销售毛利,并据以计算发出存货和期末结存存货成...
    嵩峰阅读 7,794评论 0 1
  • 今天工作中发生一件事情,一位领导要求我做某件事情,我觉得不合理,突然就爆发了。 是的,你可能会问你怎么敢跟领导对着...
    邱全成阅读 141评论 0 1
  • 明天六月七号——高考,时光匆匆。不知不觉高考已经过去一年有余,我不知道去年的我是如何挺过来的,老实说,当时在厂里上...
    属于风的故事阅读 419评论 6 8
  • 在山上待了近两月,昨天下山去了外公家,整个时间基本都在车上,晕乎乎的,导致昨天的更新都没有好好写。 今天早上上完课...
    野渡_yj阅读 193评论 0 2