> ## Documentation Index
> Fetch the complete documentation index at: https://help.dingtalk.io/llms.txt
> Use this file to discover all available pages before exploring further.

# DingTalk JSAPI

> Pelajari cara memanggil DingTalk JSAPI di halaman YiDA — mulai dari dialog native, informasi perangkat, hingga pemindaian Kode QR untuk pengalaman Sisi klien yang lebih kaya.

DingTalk menyediakan beragam kemampuan JSAPI, seperti dialog native, informasi perangkat, dan pemindaian Kode QR. Developer YiDA dapat memanfaatkan API native ini untuk menghadirkan pengalaman Pengguna yang lebih baik.

* [Daftar Fitur DingTalk JSAPI](https://open.dingtalk.com/document/orgapp/jsapi-overview-client-org)
* Untuk dasar-dasar developer DingTalk, lihat [Konsep Dasar](/id/open/dingstart/basic-concepts-beta).

<Warning>
  Perhatikan hal-hal berikut saat memanggil DingTalk JSAPI:

  * Di aplikasi YiDA, `window.dd` tidak dijamin tersedia (saat ini hanya klien mobile yang memuat resource lama). Muat secara manual.
  * Di aplikasi YiDA, API yang memerlukan Autentikasi tetap dapat dipanggil meski `dd.config` belum dikonfigurasi. Gunakan API ini dengan hati-hati.
  * Parameter `corpId` yang dibutuhkan saat memanggil JSAPI dapat diambil dengan `const { corpId } = window.pageConfig || {};`.
</Warning>

## Panduan penggunaan

### Langkah 1: Muat resource DingTalk JSAPI secara asinkron

Karena `window.dd` tidak dijamin tersedia di halaman YiDA, muat script DingTalk JSAPI secara manual pada lifecycle hook `didMount`:

```js theme={"theme":{"light":"github-light","dark":"github-dark"}}
export function didMount() {
  this.utils.loadScript('https://g.alicdn.com/dingding/dingtalk-jsapi/3.0.25/dingtalk.open.js');
}
```

Setelah resource dimuat, panggil fitur JSAPI melalui `window.dd`.

### Langkah 2: Panggil DingTalk JSAPI

Setelah DingTalk JSAPI dimuat, panggil API DingTalk melalui `window.dd` di panel aksi:

```js theme={"theme":{"light":"github-light","dark":"github-dark"}}
export function isDingTalk() {
  return window.navigator && /dingtalk/i.test(window.navigator.userAgent)
}

export function dingAlert() {
  if (window.dd && this.isDingTalk()) {
    window.dd.device.notification.alert({
      message: "Uji coba",
      title: "Tips", // boleh kosong
      buttonName: "Mengerti",
      onSuccess: function () {
      },
      onFail: function (err) { }
    });
  }
}
```

<Warning>
  Banyak metode DingTalk JSAPI hanya dapat dipanggil dari dalam aplikasi. Pastikan pengguna berada di dalam klien DingTalk sebelum memanggilnya:

  ```js theme={"theme":{"light":"github-light","dark":"github-dark"}}
  export function isDingTalk() {
    return window.navigator && /dingtalk/i.test(window.navigator.userAgent)
  }
  ```
</Warning>

## Daftar API

Untuk daftar lengkap API yang didukung, lihat [Dokumentasi DingTalk Open Platform](https://open.dingtalk.com/document/orgapp/jsapi-overview-client-org).
