想要在钉钉小程序开发里快速搞定“进入特定页面”这种需求?有两个方法:扫描二维码或点击链接就行!
1.1扫码进入指定页面
在钉钉小程序里,你要是用二维码扫进去,得注意链接里面有什么关键信息,比如说页面位置和公司标志啥的,这样才能正确无误地打开你想要看的那个界面。举个例子,如果是个专属的二维码,你一扫就能解锁小程序里的某些功能页面了,这对提升用户体验可是大有帮助!
1.2通过链接进入指定页面
还有一个常见的用法就是,用短信或者别的方法发个链接给钉钉小程序,然后点进去就行!不过在这里,咱们得先设定好这个链接应该去哪一页以及可能要用到什么业务数据。这么弄,不管用户是从哪儿接到的链接,都可以直接找到小程序里的那个功能,方便多了?
dingtalk://dingtalkclient/action/open_mini_app? miniAppId=50*********059 &source=trial&version=版本号 &page=%2Fpages%2FcheckInApply%2Findex ?mtype=2%26op=open
钉钉小程序实现免登
用上钉钉小程序的免登录功能,登陆流程直接简单好上手,给大家带来更美好的使用体验!
2.1企业内部应用获取免登授权码
我们想要让公司的软件不用登录就能用的话,第一步就是要拿到那个免登录的许可证。这其实就是跟钉钉服务器打个招呼,拿回你的权限证明。这样以后就不需要每回都敲进账号和密码了,直接就能进去用各种功能。
2.2微应用获取免登授权码
https://applink.dingtalk.com/action/open_mini_app? type=4 &miniAppId=50*********059 &corpId=ding*************153 &pVersion=1 &packageType=1 &page=%2Fpages%2FcheckInApply%2Findex
微应用搞个免登录授权码挺简单的,就跟公司内部用的差不多,不过要面对更多人、更杂的情况。得保证不管是啥机器、啥网,大家都能用这个快速搞定。
npm install dingtalk-jsapi -save
钉钉小程序实现拉起授权/免登
拉起授权和免登是钉钉小程序中非常重要的安全功能。
import * as dd from 'dingtalk-jsapi';
export const getAuthCode = (corpId) => { new Promise((resolve, reject) => { dd.getAuthCode({ corpId: corpId, success:function(result){ // 成功获取授权码 const authCode = result?.authCode; if(!authCode) { reject(); return; } uni.setStorageSync('authCode', authCode) resolve(authCode); }, fail:function(err){ // 获取授权码失败 reject(err); } }); })}
3.1三方应用拉起授权
在这些程序里头儿,折腾完授权之后,它就能安心地存下你的个人信息。只有当你的账号超期了,这些资料才会被删掉,然后再让你重新搞定授权这档子事儿。这样一来,既能保障咱们的隐私不被泄露,还能保持你的账号在线,省去了反复登录的麻烦。
import * as dd from 'dingtalk-jsapi';
export const getAuthCode = (corpId) => { new Promise((resolve, reject) => { dd.runtime.permission.requestAuthCode({ corpId: corpId, // 输入企业id onSuccess: function (res) { if (res.code) { let obj = { code: res.code, corpId: corpId, }; resolve(obj); } }, fail:function(err){ // 获取授权码失败 reject(err); } }); })}
3.2企业内部应用实现免登
我们公司用钉钉SDK来弄个授权码,这样就能在后头API里取到大家的个人资料。这样做既能保证只有被授权的人能用我们的应用,又能让大家登录起来更方便,提高工作效率!
下载支付宝开发者工具
npm install dingtalk-design-libs -save
因为钉钉跟阿里是亲戚关系,所以做钉钉小程序就用了支付宝的开发工具~
4.1下载地址
import { openAuth } from 'dingtalk-design-libs/biz/openAuth';
export const getAuthCode = (corpId) => { new Promise((resolve, reject) => { openAuth({ clientId:'dingo*************falc', // 应用ID(唯一标识) corpId: corpId, // 当前组织的corpId rpcScope: 'Contact.User.Read', fieldScope: 'Contact.User.mobile', type: 0 // 0 表示授权个人信息 }).then((res)=>{ const authCode = res?.result?.authCode; // 处理返回数据 if(!authCode) { reject(); return; } uni.setStorageSync('authCode', authCode) resolve(authCode); }).catch(err => { console.log('=======openAuth==err======', err); }) })}
咱们钉钉跟支付宝的小程序开发都是用同一套样的工具。直接官网上就能下,装好就可以开始搞我们的小游戏。这样一来就不用学新东西了,快速上手,轻松搞定!
配置钉钉的小程序
npm install dingtalk-jsapi -save
配置钉钉小程序是开发过程中的关键步骤。
5.1基本配置
配置钉钉小程序的时候,得设定几个基本参数,比如名字啦、图标啦、版本之类的。这几个因素可不单单影响我们小程序的辨识度,还直接攸关用户第一次用你的小程序时的感受!所以,把这些基础配置弄好,才能让更多人喜欢上你的小程序!
获取钉钉的授权信息
// corpId:Client ID (原 AppKey 和 SuiteKey),从应用基本信息获取export const getAuthCode = (corpId) => { new Promise((resolve, reject) => { dd.getAuthCode({ corpId: corpId, success:function(result){ // 成功获取授权码 const authCode = result?.authCode; if(!authCode) { reject(); return; } uni.setStorageSync('authCode', authCode) }, fail:function(err){ // 获取授权码失败 console.log('=======ERR=========',corpId, err); reject(err); } }); })}
获取钉钉的授权信息是确保小程序功能正常运行的前提。
6.1企业应用获取
想要让企业应用顺利运行,首先得搞定企业账户的认证和绑定。这样做能保证数据安全可靠,防止有人偷偷进犯。通过严谨的授权程序,公司就能轻松地掌握内部应用的使用权。
6.2三方个人应用获取
在获取授权信息的时候,考虑更多用户,用他们喜欢的方法。这样不管他们在哪儿、用什么设备或网络,授权起来都会很顺手,这样就能让你们的服务更好了!
获取钉钉表单的提交信息
装在钉钉里面的小程序,要想获取表单的填写内容,这可是搞定服务器和客户端互动的关键。
7.1使用form组件
用钉钉提供的form组件来拿取表单信息,然后使用特定的form-type就能搞定。虽然有点固定,但能保证数据交得标准还安全,对公司来说挺重要的。
企业内部应用发布后问题
企业的内用App,发布以后可能出岔子,得让开发人员赶紧处理。
8.1组件库样式丢失问题
有的开发人员遇到,他们把自己开发的第三方App变成了公司内部用的App以后,突然发现插件里的东西全部消失,不能正常工作。花了好久才知道,原来是缓存搞的鬼!搞定这种问题,开发人员得有耐心仔细找原因,才能保证App正常跑起来。
https://oapi.dingtalk.com/gettoken?appkey={your_appkey}&appsecret={your_appsecret}