基于Vue的钉钉H5微应用开发(一)

本文是一个关于使用Vue和Java开发钉钉H5微应用的教程,涵盖了基础环境搭建,包括安装node.js和vue-cli,以及配置DingTalk-Design-CLI。文章还详细指导了如何初始化服务端,使用React或Vue的前端模板,安装dingtalk-jsapi依赖,并启动前端的开发和调试。最后,文章提供了一个简单的JSAPI测试示例,演示如何获取组织的部门信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本系列是基于Vue和Java开发的钉钉H5微应用参考教程,在阅读之前,请关注以下信息:

1、开发人员需要拥有钉钉组织的管理员角色(子管理员也行)

2、开发人员需要具备基本的前端开发能力,了解或熟悉Vue框架,熟悉Java和SpringBoot框架

一、基础环境搭建

首先是下载和安装node.js,这里安装的node.js版本是v16.14.2,对应的npm版本是8.5.0

安装好node.js后,cache和prefix可以不用管(也可以根据实际情况和个人喜好进行设置),但是建议重置注册中心

npm set registry https://registry.npm.taobao.org/

然后是安装vue-cli:

npm install -g @vue/cli

验证vue-cli的安装,用 vue -V 命令,得到如下结果:

@vue/cli 5.0.8

至此,前端开发的基础环境就OK了

这里有个坑:node.js的安装版本不要太低,因为开发钉钉微应用要求node.js的版本至少要高于12(即13及以上,我这里用的是16的版本),否则后面搭建H5微应用开发环境的时候,一些必须用到的命令行会不可用且没有错误提示。

二、安装H5微应用的开发环境

打开钉钉开放平台,登录钉钉账号之后找到微应用本地开发工具页面,了解钉钉微应用的开发。

1、安装DingTalk-Design-CLI(*必须

npm i dingtalk-design-cli@0.20.4 -g

查看是否已经成功安装DingTalk-Design-CLI

ding -v

- dingtalk-design-cli: 0.20.4

2、初始化服务端

代码地址:https://github.com/open-dingtalk/h5app-corp-quickstart.git

本代码模板包括前端(基于React)和服务端(基于Java和SpringBoot框架)。

使用子模块 backend 作为服务端的模板代码,打开 src/main/resources/application.properties 文件,填入企业微应用的 的APP_KEY,APP_SECRET, CORP_ID, AGENT_ID (参考文档:https://ding-doc.dingtalk.com/doc#/faquestions/dcubhu)

dingtalk.app_key=APP_KEY
dingtalk.app_secret=APP_SECRET
dingtalk.agent_id=AGENT_ID
dingtalk.corp_id=CORP_ID

使用maven构建服务,从Application启动服务端


3、初始化前端代码模版到本地

ding  init -o h5Test -a h5 -t h5_jsapi_component_demo_vue -l javascript

这里说明一下:上面的代码模板也可以不用上面的 init 命令获取,模板在gitee和github都有对应的地址,gitee代码仓 和 github代码仓

这里是通过代码仓获取的zip包,解压后发现有包括使用React、Vue等多种不同框架的前端模板,这里使用 h5_jsapi_component_demo_vue 作为前端代码的 workspace。

4、安装 dingtalk-jsapi 依赖(*很重要

进入 h5_jsapi_component_demo_vue/script 文件夹

npm install dingtalk-jsapi --save

使用 'dingtalk-jsapi' 依赖

import * as dd from 'dingtalk-jsapi'

代码中有现成的样例,这里不多解说

5、启动前端的开发、调试功能

在 h5_jsapi_component_demo_vue/script 目录下执行以下命令,启动前端的本地开发、调试

npm install

npm run build

build命令成功后,会有如下信息输出:

 DONE  Build complete. The dist directory is ready to be deployed.
 INFO  Check out deployment instructions at https://cli.vuejs.org/guide/deployment.html

ding dev web

这里需要注意:启动前端必须用这个 ding 命令,不能用 npm run serve,否则打开的就是一个web页面,而不是一个模拟的移动端页面。启动成功后,会有如下信息输入:

 DONE  Compiled successfully in 5003ms                                                                                                                                                                                  

浏览器打开地址:  http://localhost:3000/

会看到如下的界面

 点击JSAPI,会看到页面提供了两个JSAPI的测试按钮,其中一个是用于获取组织的部门信息

jsapi: [
  {
    header: 'UI-dd',
    items: [{
      name: 'biz.calendar.chooseDateTime',
      key: 'BizCalendarChooseDateTime',
      desc: '选择某时间'
    },
  ],
  },
  {
    header: 'Contact',
    items: [
      {
        name: 'biz.contact.complexPicker',
        key: 'BizContactComplexPicker',
        desc: '选择部门和人'
      },
    ],
  },
]

部门选择按钮的onClick代码如下:

export default {
    name: 'biz.contact.complexPicker',
    methods: {
        onHandleClick() {
            dd.biz.contact.complexPicker({
                // corpId: window.__corpId__,
                corpId: '实际的corpId,需要管理员角色来获取',
            });
        }
    }
}

CorpId是钉钉组织的唯一ID,如何查看CorpId?登陆  钉钉开发者后台 ,点击右上角即可看到,需要钉钉的管理员角色。

将corpId换成当前的corpId,点击即可获取部门信息。

至此,基于Vue和Java的钉钉H5微应用Demo调试完成!🎉🎉🎉

 

要在Vue中实现钉钉免密登录获取用户信息,你可以按照以下步骤进行操作: 1. 引用中的代码示例,首先在Vue组件中引入钉钉的JSAPI库,并定义个函数`dingding_no_login`来处理钉钉免登录的逻辑。 2. 使用`dd.ready`方法来确保钉钉环境准备就绪后,调用`dd.runtime.permission.requestAuthCode`方法获取免登授权码。在`onSuccess`回调中,可以通过`info.code`获取到免登授权码。 3. 将免登授权码发送给后端接口进行验证,并获取用户信息。可以使用`await`关键字来等待后端接口返回结果。 4. 在获取到用户信息后,可以进行相应的跳转或保存用户信息的操作。 以下是个示例代码,展示了如何在Vue中实现钉钉免密登录获取用户信息: ```javascript import * as dd from 'dingtalk-jsapi' export default { methods: { async dingding_no_login() { if (dd.env.platform != 'notInDingTalk') { dd.ready(async () => { dd.runtime.permission.requestAuthCode({ corpId: "企业id", onSuccess: async (info) => { const res = await dingdingNoLogin({ code: info.code }) // 进行跳转或保存token的操作 } }); }); } } }, mounted() { this.dingding_no_login(); } } ``` 注意替换代码中的"企业id"为你的实际企业id。同时,你需要根据实际需求进行相应的跳转或保存用户信息的操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [前端vue 钉钉内部使用公司内部系统免登录 应用免登录](https://blog.csdn.net/weixin_64064327/article/details/125711817)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [钉钉 基于vue开发h5应用,免登录获取用户信息](https://blog.csdn.net/weixin_40079913/article/details/120198601)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值