> ## 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.

# Membuat entri pintasan (plugin grup)

> Panduan membuat entri pintasan (plugin grup) di DingTalk — mulai dari konsep, langkah pembuatan, penyusunan tautan, hingga cara mengambil info grup sumber untuk alur onboarding lengkap.

Artikel ini menjelaskan cara membuat entri pintasan.

## Apa itu entri pintasan (plugin grup)

Saat pengguna mengklik entri plugin di dalam sebuah grup, parameter grup terkait akan ikut dibawa, sehingga developer dapat mengetahui siapa yang mengklik plugin tertentu di grup mana dan pada waktu berapa. Berdasarkan hal ini, penyedia solusi dapat menghadirkan layanan bisnis yang sangat cerdas dan tepat sasaran.

<Warning>
  ## Membuat plugin grup
</Warning>

1. Masuk ke [DingTalk Developer Console](https://open-dev.dingtalk.io/#/index).
2. Di halaman **Developer Console**, pilih **Scenario group** dan klik **Create group plugin**.
3. Buat **plugin grup**, klik **Create**, lalu tunggu persetujuan.

   **Catatan**

   * Persetujuan diselesaikan dalam waktu 12 jam pada hari kerja.

   Tautan plugin grup yang berbeda dapat dikonfigurasi. Tautan tersebut dapat dibuka di workbench DingTalk, sidebar, browser eksternal, dan lainnya:

   | Metode pembukaan                          | Konfigurasi tautan                                                                                                                                                                                   |
   | ----------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
   | Membuka plugin grup di workbench DingTalk | dingtalk://dingtalkclient/action/openapp?corpid=dingxxxxxxxxxxx&**container\_type=work\_platform**\&app\_id=0\_140444xxxxx\&redirect\_type=jump\&redirect\_url=https%3A%2F%2Fding-doc.dingtalk.io%2F |
   | Membuka plugin grup di sidebar            | dingtalk://dingtalkclient/action/openapp?corpid=dingxxxxxxxxxxx&**container\_type=slide\_panel**\&app\_id=0\_140444xxxxx\&redirect\_type=jump\&redirect\_url=https%3A%2F%2Fding-doc.dingtalk.io%2F   |
   | Membuka plugin grup di browser eksternal  | dingtalk://dingtalkclient/action/openapp?corpid=dingxxxxxxxxxxx\&con**tainer\_type=browser**\&app\_id=0\_140444xxxxx\&redirect\_type=jump\&redirect\_url=https%3A%2F%2Fding-doc.dingtalk.io%2F       |

## Menyusun tautan entri pintasan

Entri pintasan (plugin grup) adalah tautan DingTalk dengan kemampuan bisnis. Developer harus menyusun tautan entri pintasan berdasarkan skenario nyata dari aplikasi mikro mereka dan kebutuhan spesifik pengguna dalam grup.

Nama entri pintasan mendukung hingga empat karakter. Tautan entri pintasan menawarkan kemampuan yang luas, tetapi developer harus menyusunnya melalui parameter tautan. Misalnya, metode pembukaan di sisi seluler (push page, pop page, dll.) dan logika navigasi halaman di sisi PC (membuka kontainer baru atau menggeser halaman ke kiri) semuanya diimplementasikan melalui konfigurasi parameter tautan.

* **Alihkan ke halaman H5**

  tautan (sidebar / kontainer slide-out)

  Contoh:

  ```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
  dingtalk://dingtalkclient/page/link?dd_mode=push&pc_slide=true&url=http%3a%2f%2fomsdevdingtalkf.zjk.taeapp.com%2findex.html%3fcorpid%3d$CORPID$%26dd_nav_bgcolor%3dffff943e%2f%23%2fgroup-plugin%3fcorpid%3d$CORPID$%26openConversationId%3d$DOUBLE_ENCCID$%26dd_nav_bgcolor%3dffff943e%26pluginType%3d3%26appid%3d6397
  ```

  Deskripsi parameter:

  | Parameter | Deskripsi                                                                                                                                  |
  | --------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
  | url       | URL halaman. Encoding URL diperlukan.                                                                                                      |
  | dd\_mode  | Digunakan pada iOS. - push: mendorong kontainer dari kiri ke kanan pada iOS. - present: memunculkan kontainer dari bawah ke atas pada iOS. |
  | pc\_slide | Ketika pc\_slide=true, URL dibuka di dalam aplikasi pada sisi PC.                                                                          |
* **Alihkan ke aplikasi mikro**

  openapp (seperti workbench, browser, atau panel geser kiri)

  Contoh:

  ```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
  dingtalk://dingtalkclient/action/openapp?corpid=$CORPID$&container_type=work_platform&app_id=3204&redirect_type=emit_params&params=&redirect_url=https%3A%2F%2Ftestt2.wmnetwork.cc%2Fmanage%2Findex%3Fmid%3Dwfp40mx9
  ```

  Deskripsi parameter:

  | Parameter            | Deskripsi                                                                                                                                                                                                                           |
  | -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
  | container\_type      | Kontainer tempat halaman ditampilkan: - browser: browser. - slide\_panel: panel geser kiri. - work\_platform: workbench.                                                                                                            |
  | corpid               | ID organisasi.                                                                                                                                                                                                                      |
  | app\_id              | - Untuk Aplikasi perusahaan pihak ketiga, isi appId. Lihat cara menampilkan appId. - Untuk Aplikasi internal, isi 0\_agentId, yang terdiri dari angka 0, sebuah Garis Bawah, dan agentId. agentId dapat dilihat di detail aplikasi. |
  | redirect\_type       | Tipe pengalihan: - jump: membuka redirect\_url secara langsung. - emit\_params: menggunakan metode event-emitting.                                                                                                                  |
  | params               | Parameter. Saat membuka untuk pertama kali, tambahkan parameter ini ke daftar parameter URL pengalihan.                                                                                                                             |
  | redirect\_url        | URL pengalihan. Encoding URL diperlukan.                                                                                                                                                                                            |
  | slide\_panel\_option | Parameter untuk panel geser kiri, eksklusif untuk versi PC. Misalnya: `{"width":500,"showAppPage":true}` (`width` adalah lebar sidebar, dan `showAppPage` menunjukkan apakah halaman web ditampilkan).                              |
* **Alihkan ke mini program**

  1. **Parameter umum (didukung oleh open\_micro\_app dan open\_mini\_app)**

     | Parameter     | Wajib                                                                                   | Deskripsi                                                                                                                                                                                                                                                                                                                                  |
     | ------------- | --------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
     | appId         | Pilih salah satu antara appId dan agent\_id. Jika keduanya ada, app\_id diprioritaskan. | ID aplikasi mikro. Perhatikan bahwa ini bukan ID mini program. Aplikasi ISV menggunakan ID ini.                                                                                                                                                                                                                                            |
     | page          | Tidak                                                                                   | Jalur halaman mini program. Parameter GET dapat ditambahkan. Default-nya adalah halaman beranda mini program.                                                                                                                                                                                                                              |
     | query         | Tidak                                                                                   | Parameter startup mini program, yang dapat diperoleh di callback App.onLaunch / onShow. Saat mini program dijalankan, Sisi klien menambahkan parameter corpId secara default. Oleh karena itu, sisi bisnis tidak dapat mengatur corpId, karena akan ditimpa.                                                                               |
     | containerType | Tidak                                                                                   | Parameter khusus PC. Opsi berikut tersedia: - browser: browser. - slide\_panel (Default): panel geser kiri. - work\_platform: workbench. - mobile: mengalihkan ke sisi seluler.                                                                                                                                                            |
     | title         | Tidak                                                                                   | Parameter khusus PC yang digunakan untuk menampilkan judul.                                                                                                                                                                                                                                                                                |
     | source        | Tidak                                                                                   | Sumber (digunakan hanya saat paket perlu ditarik dari Sisi server): - debug: versi debug perangkat nyata. - trial: versi uji coba.                                                                                                                                                                                                         |
     | version       | Tidak                                                                                   | Nomor versi.                                                                                                                                                                                                                                                                                                                               |
     | ddMode        | Tidak                                                                                   | Mode transisi untuk meluncurkan mini program. - push: mode push. - present: mode pop-up. - float: mode floating layer. - pop: mode pop view. Jika tidak ditentukan, Sisi klien meluncurkan menggunakan mode transisi default. Rilis grayscale dimulai pada Sisi klien v4.5.8. float dan pop memulai rilis grayscale di v4.6.35 (20190624). |
     | mainTask      | Tidak                                                                                   | Diperlukan hanya untuk **klien Android**. Nilainya "true" atau "false", default-nya false. Jika diatur ke "true", mini program berjalan dalam Task yang sama dengan Task utama DingTalk dan tidak lagi dijaga tetap aktif. Didukung pada Sisi klien v4.6.3.                                                                                |
     | ddJointNavi   | Tidak                                                                                   | Mengonfigurasi gaya bilah navigasi. Jika dikonfigurasi, akan menimpa logika ddMode. android & iOS: "0", "1", atau "1001". - 0: bilah navigasi lama. - 1: bilah navigasi baru. - 1001: bilah navigasi hanya dengan tombol kembali dan judul.                                                                                                |
     | keepAlive     | Tidak                                                                                   | Dapat diatur ke **true** atau **false**, default-nya **true**. Jika mainTask diatur ke true, key ini diabaikan.                                                                                                                                                                                                                            |
     | ddFocus       | Tidak                                                                                   | Dapat diatur ke **true** atau **false**, default-nya **true**. Jika diatur ke **true**, kontainer menonaktifkan elemen internal agar tidak mendapatkan fokus selama inisialisasi.                                                                                                                                                          |
     | ddEnableWX    | Tidak                                                                                   | Apakah rendering Weex didukung. Ketika rendering Weex didukung, jika halaman dikonfigurasi dengan mode rendering Weex, Weex dapat diluncurkan untuk memuat halaman.                                                                                                                                                                        |
     | ddForceAsync  | Tidak                                                                                   | Apakah memaksa startup asinkron. Dengan startup asinkron paksa, jika paket offline lokal ada, pembaruan sinkron tidak dipicu dan aplikasi dijalankan dengan pembaruan asinkron paksa (untuk mengatasi masalah startup di lingkungan offline).                                                                                              |
     | animated      | Tidak                                                                                   | Nilainya **0** atau **1**. Menunjukkan apakah animasi transisi digunakan untuk startup asinkron (diabaikan untuk skenario startup sinkron). Default-nya **1**. Tersedia sejak v4.6.36.                                                                                                                                                     |

### Parameter yang didukung saat ddMode=float (jendela mengambang)

| Parameter     | Wajib                                                                  | Deskripsi                                                                                                                                                                                                                                                                                                                                   |
| ------------- | ---------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| panelHeight   | Tidak                                                                  | Tinggi jendela mengambang. Dapat berupa Persen dari layar atau tinggi tetap. - percent50 berarti 50% dari layar. Angka harus berada dalam rentang (0-100]. Nilai di luar rentang dibatasi ke batas. - 1000 berarti tinggi tepat 1000 pt (bukan px). - Jika tidak diatur atau diatur ke 0, jendela mengambang ditampilkan dalam layar penuh. |
| containerType | Tidak                                                                  | Dua nilai tambahan tersedia dalam skenario ini: - miniApp (Default): mini program. - online: H5 online.                                                                                                                                                                                                                                     |
| miniAppId     | Bergantung pada containerType                                          | appId mini program.                                                                                                                                                                                                                                                                                                                         |
| page          | Bergantung pada containerType                                          | Alamat halaman yang di-encode URL. Untuk mini program, ini adalah halaman mini program. Untuk H5 online, ini adalah URL.                                                                                                                                                                                                                    |
| coverVisible  | Tidak. Ditampilkan secara default. Atur ke false untuk menyembunyikan. | - true (Default): menampilkan lapisan mask. - false: menyembunyikan lapisan mask. Ditampilkan secara default.                                                                                                                                                                                                                               |

### Parameter yang didukung saat ddMode=pop (lapisan pop)

| Parameter     | Wajib                         | Deskripsi                                                                                                                |
| ------------- | ----------------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| width         | Ya                            | Lebar lapisan pop.                                                                                                       |
| height        | Ya                            | Tinggi lapisan pop.                                                                                                      |
| clear         | Tidak                         | Apakah latar belakang transparan. Buram secara default.                                                                  |
| containerType | Tidak                         | Dua nilai tambahan tersedia dalam skenario ini: - miniApp (Default): mini program. - online: H5 online.                  |
| miniAppId     | Bergantung pada containerType | appId mini program.                                                                                                      |
| page          | Bergantung pada containerType | Alamat halaman yang di-encode URL. Untuk mini program, ini adalah halaman mini program. Untuk H5 online, ini adalah URL. |

2. **Skema membuka aplikasi mikro (skema eksklusif untuk mini program perusahaan)**

   Skema: `dingtalk://dingtalkclient/action/open_micro_app`

   `Basic parameters are the same as in the common parameters list.`

   Logika kontrol grayscale harus ditempatkan dalam handler skema ini.

   ​

   | Parameter    | Wajib                                                                                                                                                  | Deskripsi                                                                                                                                                                                                                                     |
   | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
   | corpId       | Ya                                                                                                                                                     | ID organisasi. **Penting** Parameter ini memiliki prioritas tinggi dan menimpa corpId di query.                                                                                                                                               |
   | appId        | Pilih salah satu antara appId dan agent\_id. Jika keduanya ada, appid diprioritaskan.                                                                  | ID aplikasi mikro. Perhatikan bahwa ini bukan ID mini program. Aplikasi ISV menggunakan ID ini.                                                                                                                                               |
   | agentId      | Pilih salah satu antara agentId dan app\_id.                                                                                                           | agent\_id dari Aplikasi internal.                                                                                                                                                                                                             |
   | fallbackUrl  | Tidak. Tidak diperlukan untuk aplikasi mikro yang tidak mendukung H5. Diperlukan untuk aplikasi mikro dalam fase grayscale antara H5 dan mini program. | Alamat H5. Aplikasi mikro yang tidak mendukung mini program menggunakan alamat ini secara langsung.                                                                                                                                           |
   | ddFocus      | Tidak                                                                                                                                                  | Jika diatur ke true, kontainer menonaktifkan elemen internal agar tidak mendapatkan fokus selama inisialisasi. Default-nya false.                                                                                                             |
   | ddForceAsync | Tidak                                                                                                                                                  | Apakah memaksa startup asinkron. Dengan startup asinkron paksa, jika paket offline lokal ada, pembaruan sinkron tidak dipicu dan aplikasi dijalankan dengan pembaruan asinkron paksa (untuk mengatasi masalah startup di lingkungan offline). |

   Kasus uji sisi PC:

   * Membuka URL di panel geser tanpa judul.

     ```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
     dingtalk://dingtalkclient/action/open_micro_app?corpId=11233&app_id=123&fallback_url=https%3A%2F%2Fwww.dingtalk.io&container_type=slide_panel
     ```
   * Membuka URL di panel geser tanpa judul.

     ```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
     dingtalk://dingtalkclient/action/open_micro_app?corpId=11233&app_id=123&fallback_url=https%3A%2F%2Fwww.dingtalk.io
     ```
   * Membuka URL di browser.

     ```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
     dingtalk://dingtalkclient/action/open_micro_app?corpId=11233&app_id=123&fallback_url=https%3A%2F%2Fwww.dingtalk.io&container_type=browser
     ```
   * Membuka URL di panel geser dengan judul.

     ```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
     https://www.dingtalk.io?micro_app_scheme=dingtalk%3A%2F%2Fdingtalkclient%2Faction%2Fopen_micro_app%3F%0AcorpId%3D11233%26app_id%3D123%26container_type%3Dslide_panel%26title%3Dtest_title
     ```
   * Membuka URL di browser.

     ```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
     https://www.dingtalk.io?micro_app_scheme=dingtalk%3A%2F%2Fdingtalkclient%2Faction%2Fopen_micro_app%3F%0AcorpId%3D11233%26app_id%3D123%26container_type%3Dbrowser%26title%3Dtest_title
     ```
3. Skema meluncurkan mini program (skema eksklusif untuk mini program pribadi)

   Skema: `dingtalk://dingtalkclient/action/open_mini_app`

   Parameter dasar sama dengan yang ada di daftar parameter umum.

   | Parameter | Wajib | Deskripsi        |
   | --------- | ----- | ---------------- |
   | miniAppId | Ya    | ID mini program. |
4. **Skema debug mini program**

   Skema: `dingtalk://dingtalkclient/action/dev_mini_app`

   Utamanya digunakan untuk men-debug mini program dan mengembangkan dengan framework appx. Mini program yang dibuka dengan cara ini meluncurkan dokumen utama secara langsung melalui URL. Proses manajemen paket tidak dijalankan, dan logika keep-alive tidak dipicu. miniAppId hanya digunakan untuk verifikasi antarmuka dan tujuan sejenis.

### Penting

Parameter-parameter tersebut semuanya telah di-encode. Decode terlebih dahulu sebelum digunakan.

| Parameter      | Deskripsi                                                                                                                                            |
| -------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| url            | URL dokumen utama mini program yang di-encode. Sisi klien memanggil nebulaSDK untuk membuka tautan ini.                                              |
| miniAppId      | appId mini program.                                                                                                                                  |
| isTinyApp      | Apakah ini adalah mini program. Harus diatur ke YES saat dibuka melalui HTTP.                                                                        |
| enableDSL      | Apakah menggunakan mini program. Nilainya YES atau NO.                                                                                               |
| enableWK       | Apakah menggunakan WK. Nilainya YES atau NO.                                                                                                         |
| packageManager | Layanan manajemen paket. - Default: antarmuka DingTalk. - alipay\_online: lingkungan produksi Alipay. - alipay\_dev: lingkungan pengembangan Alipay. |
| keepAlive      | Apakah tetap aktif. Default-nya true.                                                                                                                |

## Cara memperoleh informasi grup sumber melalui tautan

* Tentukan metode pembukaan khusus.

  Entri pintasan (plugin grup) adalah tautan DingTalk dengan kemampuan bisnis. Developer harus menyusun tautan plugin grup berdasarkan skenario nyata dari aplikasi mikro mereka dan kebutuhan spesifik pengguna dalam grup. Nama plugin mendukung hingga empat karakter. Tautan plugin menawarkan kemampuan yang luas, tetapi developer harus menyusunnya melalui parameter tautan. Misalnya, metode pembukaan di sisi seluler (push page, pop page, dll.) dan logika navigasi halaman di sisi PC (membuka kontainer baru atau menggeser halaman ke kiri) semuanya diimplementasikan melalui konfigurasi parameter tautan.

  Berikut ini menggunakan entri pintasan untuk grup proyek sebagai contoh untuk menjelaskan secara rinci bagaimana sebuah tautan entri pintasan disusun.

  `<dingtalk://dingtalkclient/page/link?url=https%3a%2f%2fding-doc.dingtalk.io%2fdoc%23%2fpqkq0u%2feluagw%2f$CORPID$%2f$DOUBLE_ENCCID$>`

  * **Alamat halaman target developer**: https%3a%2f%2fding-doc.dingtalk.io%2fdoc%23%2fpqkq0u%2feluagw

    * Saat Anda menggunakan protokol pengalihan terpadu DingTalk, bagian ini digunakan sebagai parameter dari alamat "protokol pengalihan terpadu DingTalk", sehingga encoding URL diperlukan.
    * Saat Anda tidak menggunakan protokol pengalihan terpadu DingTalk, Anda dapat menggunakan URL asli secara langsung sebagai alamat entri pintasan. Encoding URL tidak diperlukan.
  * **Protokol pengalihan terpadu DingTalk (opsional)** dingtalk://dingtalkclient/page/link?url=

    * Bagian ini menentukan bagaimana halaman yang Anda tentukan dibuka. Metode yang saat ini didukung meliputi "buka di browser", "buka di sidebar", dan lainnya. Jalur protokol pengalihan terpadu berbeda untuk setiap metode.
    * Beberapa jalur protokol pengalihan terpadu hanya tersedia pada klien platform tertentu. Misalnya, "buka di sidebar" hanya tersedia pada klien PC dan Mac.
  * Entri pintasan **parameter dinamis alamat (opsional)** $CORPID$ $DOUBLE_ENCCID$

    * Saat parameter dinamis ini diatur, bagian yang sesuai dalam URL diganti dengan informasi Konteks grup (seperti corpId dan openConversationId) ketika pengguna mengklik entri pintasan untuk mengakses alamat developer.

      Parameter dinamis yang saat ini didukung adalah sebagai berikut:

      | Parameter       | Deskripsi                                                                                                                                                                                                                                                                                          |
      | --------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
      | $CORPID$        | Diganti secara dinamis dengan ID Organisasi (corpId).                                                                                                                                                                                                                                              |
      | $ENCCID$        | Diganti secara dinamis dengan ID grup terbuka (openConversationId). Gunakan parameter dinamis ini hanya saat protokol pengalihan terpadu DingTalk tidak digunakan.                                                                                                                                 |
      | $DOUBLE_ENCCID$ | Diganti secara dinamis dengan ID grup terbuka (openConversationId). Perbedaannya adalah bahwa ia di-encode URL dua kali, yang digunakan untuk decoding URL selama pengalihan pass-through multi-protokol. Gunakan parameter dinamis ini hanya saat protokol pengalihan terpadu DingTalk digunakan. |

      Alasan encoding/decoding URL ganda dari $DOUBLE_ENCCID$ adalah sebagai berikut: DingTalk menggunakan protokol internal dengan prefiks "dingtalk://", yang memerlukan satu putaran encoding agar dapat diurai. Protokol HTTPS bisnis yang di-pass-through setelah parameter URL juga memerlukan satu putaran encoding/decoding lagi saat dikonsumsi oleh kontainer hilir. Karena konsumen perlu melakukan dua putaran decoding, dua putaran encoding diperlukan saat menghasilkan URL.

      Contoh menghasilkan URL: urlencode (DingTalk URL?xxx=xxx & url = urlencode (business URL))

      Contoh mengurai URL: a. urldecode (DingTalk URL) -> mendapatkan business URL; b. urldecode (business URL) -> mendapatkan parameter yang dapat digunakan.
