Buat APK Gratis

Kerangka aplikasi dan navigasi

Deep Linking

Buka Halaman Tertentu dari URL & Notifikasi

1Apa itu Deep Linking?#

Deep Linking memungkinkan sumber eksternal (browser, SMS, email, media sosial, notifikasi push, kode QR) membuka aplikasi Anda langsung ke halaman tertentu, bukan beranda.

Aplikasi Anda mendukung dua jenis, dan keduanya TIDAK sama mudahnya:

  1. âš¡ Custom Scheme (myapp://path) - langsung berfungsi, tidak perlu pengaturan. Terbaik untuk notifikasi push dan kode QR.
  1. 🌠Tautan https:// (https://mysite.com/page) - butuh SATU file yang diunggah ke situs web Anda. Tanpanya Android menahan tautan di browser dan aplikasi Anda tidak pernah terbuka. Ini penyebab paling umum deep link 'tidak berfungsi'.

Keduanya dibahas di bawah. Jika Anda hanya butuh sesuatu yang langsung jalan hari ini, gunakan custom scheme.

2Cara Kerja URL Custom Scheme#

Saat tautan custom scheme diketuk (mis. myapp://products/shoes), aplikasi akan:

  1. Menerima URL custom scheme
  2. Otomatis memetakannya ke URL situs web Anda
  3. Membuka WebView ke halaman yang benar

✅ Scheme diambil dari Nama Aplikasi Anda (huruf kecil, hanya huruf).

✅ Contoh pemetaan:
myapp://products/shoes
→ https://mysite.com/products/shoes

Segmen jalur setelah scheme dipertahankan dan ditambahkan ke domain situs web Anda.

Custom scheme format:
  <appname>://<path>

Examples:
  myshop://cart
  → https://myshop.com/cart

  puma://in/en/help
  → https://in.puma.com/in/en/help

Ini bagian yang sering terlewat, jadi baca sebelum menguji.

AppMint memasukkan domain Anda ke aplikasi secara otomatis. Tetapi Android TIDAK akan membuka aplikasi Anda dari tautan https:// sampai SITUS WEB Anda membuktikan bahwa aplikasi itu milik Anda. Di Android 12 ke atas, tautan yang belum terbukti hanya membuka browser - tanpa dialog, tanpa pilihan. Itulah sebabnya tautan bisa terlihat 'tidak melakukan apa-apa'.

Buktinya adalah satu file kecil. AppMint sudah membuatkannya untuk Anda: setelah build, lihat di Downloads untuk assetlinks.json. Isinya nama paket Anda dan fingerprint penandatanganan aplikasi Anda.

Unggah ke situs web Anda di alamat PERSIS ini (nama folder diawali titik):

https://yoursite.com/.well-known/assetlinks.json

Rules — all four must be true:
  1. Served over https (not http)
  2. Content-Type: application/json
  3. NO redirect (a redirect to www breaks it)
  4. Reachable publicly — no login, no Cloudflare challenge

Check it from any computer:
  curl -i https://yoursite.com/.well-known/assetlinks.json

4Menerbitkan di Google Play? Gunakan fingerprint dari Play#

Google Play menandatangani ulang aplikasi Anda dengan kuncinya SENDIRI. Jadi fingerprint di assetlinks.json yang dibuat AppMint - yaitu kunci lokal Anda - tidak akan cocok dengan yang benar-benar diinstal pengguna dari Play.

Jika Anda menerbitkan di Play, ganti fingerprint-nya:

  1. Play Console → aplikasi Anda → Test and release → Setup → App integrity
  2. Salin SHA-256 dari 'App signing key certificate'
  3. Masukkan nilai itu ke assetlinks.json dan unggah ulang

Anda bisa mencantumkan KEDUA fingerprint di file yang sama - yang lokal untuk APK yang Anda bagikan langsung, dan yang dari Play untuk instalasi dari Play. Dengan begitu keduanya berfungsi.

[{
  "relation": ["delegate_permission/common.handle_all_urls"],
  "target": {
    "namespace": "android_app",
    "package_name": "com.yourapp.name",
    "sha256_cert_fingerprints": [
      "AA:BB:...",   // your local key (direct APK)
      "11:22:..."    // Play App Signing key
    ]
  }
}]

5Periksa apakah Android menerimanya#

Setelah mengunggah file, INSTAL ULANG aplikasi (Android hanya memeriksa saat instalasi, dan bisa memakan waktu semenit).

Perintah di bawah ini memberi tahu kebenarannya. Cari domain Anda dengan 'verified'. Jika tertulis 'legacy_failure' atau domain tidak ada, file tidak terbaca dengan benar - kembali dan periksa keempat aturannya.

# Does Android consider your domain verified?
adb shell pm get-app-links com.yourapp.name

# Force a re-check without reinstalling (Android 12+):
adb shell pm verify-app-links --re-verify com.yourapp.name

# Google's own checker (open in a browser):
https://digitalassetlinks.googleapis.com/v1/statements:list?
  source.web.site=https://yoursite.com&
  relation=delegate_permission/common.handle_all_urls

6Mengapa biasanya gagal#

Diurutkan dari penyebab yang paling sering:

  1. File belum diunggah, atau berada di jalur yang salah. Harus di /.well-known/assetlinks.json - dengan titik.
  1. www vs tanpa www. Android menganggap https://example.com dan https://www.example.com sebagai domain BERBEDA. AppMint mendaftarkan host persis seperti Website URL Anda. Jika Anda memakai keduanya, letakkan file di keduanya, dan beri tahu kami host mana yang Anda masukkan.
  1. Pengalihan (redirect). Banyak host mengalihkan apex domain ke www. Itu merusak verifikasi meskipun file bisa dimuat di browser.
  1. Diterbitkan di Play tetapi memakai fingerprint lokal - lihat langkah sebelumnya.
  1. Belum diinstal ulang setelah mengunggah. Android memeriksa saat instalasi.

Tautan custom scheme (myapp://...) tidak membutuhkan semua ini dan selalu berfungsi - gunakan untuk notifikasi push dan kode QR jika Anda ingin sesuatu yang langsung jalan hari ini.

Uji deep link Anda dari PC yang tersambung lewat USB debugging:

  1. Aktifkan USB Debugging di ponsel Anda
  2. Sambungkan lewat USB
  3. Jalankan perintah di bawah ini.

âš ï¸ Penting: 'am start' dengan tautan https bisa membuka aplikasi Anda meskipun verifikasi GAGAL, karena Anda menyerahkan tautan langsung ke Android. Ini tidak membuktikan ketukan sungguhan di Gmail atau Chrome akan berhasil. Hanya 'pm get-app-links' (langkah sebelumnya) yang memberi tahu itu. Gunakan am start untuk memeriksa routing HALAMAN Anda, bukan pengaturan domain.

# Test custom scheme:
adb shell am start -a android.intent.action.VIEW \
  -d "myapp://some/page"

# Test website URL:
adb shell am start -a android.intent.action.VIEW \
  -d "https://mysite.com/some/page"

# Verify which app handles it:
adb shell cmd package resolve-activity --brief \
  -a android.intent.action.VIEW \
  -d "myapp://some/page"

Saat mengirim notifikasi push lewat OneSignal, tempel URL deep link apa pun ke kolom 'Launch URL'. Aplikasi akan terbuka dan langsung menuju halaman itu.

Kedua jenis URL berfungsi:
✅ https://mysite.com/flash-sale
✅ myapp://flash-sale

OneSignal Dashboard → New Push:

Launch URL: https://mysite.com/flash-sale
  OR
Launch URL: myapp://flash-sale

Both will open the app on the sale page.

9Penting: Perilaku Warm Launch#

Jika aplikasi Anda sudah berjalan di latar belakang saat deep link dipicu, Android mengirim tautan langsung tanpa memulai ulang aplikasi - ini disebut 'warm launch'.

✅ Aplikasi Anda menangani ini secara otomatis. WebView akan berpindah ke halaman baru bahkan saat aplikasi sudah terbuka.

âš ï¸ Jika deep link hanya membuka beranda, periksa bahwa:

  • Website URL di konfigurasi cocok dengan domain di deep link
  • Jalur di URL custom scheme sudah benar

âš ï¸ Jika tautan https:// sama sekali TIDAK membuka aplikasi, ini bukan masalah warm launch - ini langkah assetlinks.json di atas. Tautan custom scheme berfungsi sementara tautan https tidak melakukan apa-apa adalah tanda klasiknya.

Warm launch works automatically.
No extra setup needed.

Halaman ini dibuat dari Panduan Integrasi di dalam aplikasi itu sendiri, jadi isinya persis sama dengan build saat ini. Baca sebagai Markdown.

Diperiksa terhadap panduan yang dirilis pada 2026-10-22.