钉钉微应用怎么进入_钉钉微应用 开发体验及心得

本文介绍了作者在开发钉钉微应用的过程中,从查阅官方文档到选择框架,再到微应用的免登陆流程实现的详细步骤。重点讨论了如何利用钉钉的dingtalk.js初始化微应用,使用vue和vuex进行状态管理,并提供了关键代码示例。
摘要由CSDN通过智能技术生成

开始调研

主要还是看钉钉的官方文档和论坛,钉钉推荐使用saltUI和saltRouter进行开发微应用,但是看了这2个东西的源码后,感觉没封装什么东西,主要的功能还是集中在钉钉的dingtalk.js中,所以个人认为没必要用它推荐的这2个东西。

框架选择

作为一个vue的忠实粉丝,这次也肯定想用vue进行开发,考虑到vue2.0还没有很好的移动端UI框架,所以这次试用了更成熟的vue1.0的ui框架vux,然后微应用其实对应用状态管理的要求还是比较高的,所以也用了vuex来管理应用状态。

微应用流程

我们使用的是免登陆流程如下

它的入口网页会自动传appid,corpid,suiteKey这3个参数在url上面,通过这3个参数去自己的服务器获取到dd.config需要用的参数.

然后在dd.ready中设置和获取一些全局的钉钉属性,比如 设置左上角返回键的回调,获取容器的版本信息(用来判断能不能调用某些jsapi)

再初始化vue,配置vue插件什么的

最后判断js.config是否成功,然后dispath到vuex中

代码详解

对比上面流程的1. 2. 3. 4. 的代码

getConfig() //1.通过url上的3个参数,获取自己服务器上的配置信息

.then((data)=>{

ddConfig = data;

dd.config(ddConfig); //1.初始化钉钉的jssdk

})

.then(ddIsReady) //2.做一些钉钉的全局设置

.then(initVue) //3.初始化vue

.then(()=>{

document.querySelector('#init-loading').remove(); //移除加载动画

console.log('init vue 完成')

setTimeout(()=>{

if(ddConfig != null){

commit('DDCONFIG_SUCCESS', ddConfig) //4.通知vuex改变应用功能状态

}else{

commit('DDCONFIG_ERROR', false); //4.通知vuex改变应用功能状态

}

},300)

})

getConfig

function getConfig() {

return Q.Promise((success, error)=>{

axios.get(env.API_HOST+'/auth/getConfig', {

params: {

corpid: getParamByName('corpid')||'',

appid: getParamByName('appid')||'',

suitekey: getParamByName('suiteKey')||'',

paramUrl: document.URL

},

timeout: 2000,

}).then(function (response) {

if(response.status == 200 && response.data.code == 200){<

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值