128 lines
3.6 KiB
Markdown
128 lines
3.6 KiB
Markdown
# 钉钉多端统一jsapi
|
||
|
||
此 jsApi 支持运行于 android, ios, pc,钉钉小程序,小程序内嵌 webview 等钉钉全环境下,且保持开发体验一致。
|
||
|
||
## 安装
|
||
|
||
dingtalk-jsapi 现在可从 `npm` 上安装.
|
||
|
||
```shell
|
||
npm install dingtalk-jsapi
|
||
```
|
||
|
||
推荐使用npm包形式按需引入
|
||
|
||
## 新的特性
|
||
|
||
除了兼容现钉钉开放平台提供的jsapi的特性,还支持以下下特性
|
||
|
||
1. 支持返回原生 Promise
|
||
2. 支持模块化引入 api,模块化引入平台
|
||
3. 支持 dd.checkJsApi, 用于检测当前环境是否支持此jsApi
|
||
4. 提供 dd.on, dd.off来绑定事件,用于同一绑定事件
|
||
5. 添加 dd.env 来读取当前环境变量
|
||
6. 支持 typescript 的接口定义,接口定义还在持续添加中,如有纰漏欢迎反馈
|
||
|
||
## 使用介绍
|
||
|
||
#### 整体调用
|
||
|
||
```typescript
|
||
import * as dd from 'dingtalk-jsapi';
|
||
dd.device.notification.alert({
|
||
message: "亲爱的",
|
||
title: "提示",//可传空
|
||
buttonName: "收到",
|
||
}).then(() => {
|
||
//成功即相当于 onSuccess
|
||
}, () => {
|
||
//失败即相当于 onFail
|
||
});
|
||
|
||
```
|
||
|
||
#### 按需调用(占用体积小)
|
||
|
||
```typescript
|
||
import 'dingtalk-jsapi/entry/mobile'; // 只引入移动端(支持小程序)
|
||
// import 'dingtalk-jsapi/entry/union'; // 如果你想要在此代码在PC端和移动端都执行,那你可以如此引入
|
||
import alert from 'dingtalk-jsapi/api/device/notification/alert'; // 按需引入方法
|
||
|
||
alert({
|
||
message: "亲爱的",
|
||
title: "提示",//可传空
|
||
buttonName: "收到",
|
||
}).then(() => {
|
||
//成功即相当于 onSuccess
|
||
}, () => {
|
||
//失败即相当于 onFail
|
||
});
|
||
|
||
```
|
||
|
||
### dd.ready优化
|
||
|
||
#### 旧版本pc调用接口
|
||
```typescript
|
||
//首先你鉴权需要权限
|
||
dd.config({
|
||
agentId: '', // 必填,微应用ID
|
||
corpId: '',//必填,企业ID
|
||
timeStamp: , // 必填,生成签名的时间戳
|
||
nonceStr: '', // 必填,生成签名的随机串
|
||
signature: '', // 必填,签名
|
||
type:0/1, //选填,0表示微应用的jsapi,1表示服务窗的jsapi,不填默认为0。该参数从dingtalk.js的0.8.3版本开始支持
|
||
jsApiList:[
|
||
'biz.contact.choose',
|
||
],
|
||
});
|
||
|
||
//然后因为鉴权是异步的,所以你的方法需要包括在dd.ready, config校验完成后的钩子
|
||
dd.ready(() => {
|
||
dd.device.notification.alert({
|
||
message: "亲爱的",
|
||
title: "提示",//可传空
|
||
buttonName: "收到",
|
||
}).then(() => {
|
||
//成功即相当于 onSuccess
|
||
}, () => {
|
||
//失败即相当于 onFail
|
||
});
|
||
})
|
||
|
||
```
|
||
|
||
#### 新版本pc调用接口
|
||
```typescript
|
||
dd.config({
|
||
agentId: '', // 必填,微应用ID
|
||
corpId: '',//必填,企业ID
|
||
timeStamp: , // 必填,生成签名的时间戳
|
||
nonceStr: '', // 必填,生成签名的随机串
|
||
signature: '', // 必填,签名
|
||
type:0/1, //选填,0表示微应用的jsapi,1表示服务窗的jsapi,不填默认为0。该参数从dingtalk.js的0.8.3版本开始支持
|
||
jsApiList:[
|
||
'device.notification.alert',
|
||
],
|
||
});
|
||
|
||
// 优化后不再需要包括dd.ready,接口自动延后执行
|
||
dd.device.notification.alert({
|
||
message: "亲爱的",
|
||
title: "提示",//可传空
|
||
buttonName: "收到",
|
||
}).then(() => {
|
||
//成功即相当于 onSuccess
|
||
}, () => {
|
||
//失败即相当于 onFail
|
||
});
|
||
```
|
||
|
||
## 反馈渠道
|
||
|
||
亲爱的开发者,为了更好的提高服务效率和问题沉淀,在开发过程中如果遇到问题,可以有以下方式获取技术支持:
|
||
【推荐】登录开发者后台,https://open-dev.dingtalk.com,在右下角有“在线帮助”(人工客服时间:工作日10:00~12:00,14:00~18:00, 19:00~21:00)
|
||
|
||
|
||
**最终解释权归阿里巴巴钉钉事业部所有**。
|