README.md 3.65 KB
Newer Older
liang ce committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128
# 钉钉多端统一jsapi

此jsApi支持运行于android, ios, pc,钉钉小程序环境,且保持开发体验一致。

## 安装

dingtalk-jsapi 现在可从 `npm` 上安装.

```shell
npm install dingtalk-jsapi
```

推荐使用npm包形式按需引入

## 新的特性

除了兼容现钉钉开放平台提供的jsapi的特性,还支持以下下特性

1. 支持返回原生Promise
2. 支持模块化引入api,模块化引入平台
3. 支持dd.checkJsApi, 用于检测当前环境是否支持此jsApi
4. 提供dd.on, dd.off来绑定事件,用于同一绑定事件,替代document.addEventListener,document.removeEventListener
5. 添加dd.env来读取当前环境变量
6. 支持typescript的接口定义,接口定义还在持续添加中,如有纰漏欢迎反馈

## 使用介绍

### 1. 按需引入
#### 整体调用

```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)


**最终解释权归阿里巴巴钉钉事业部所有**