iOS Deep Linking; Lebih Baik URL Schemes atau Universal Links? (Part II)

Photo by Isaiah Bekkers on Unsplash

Di artikel sebelumnya, part I, telah dijelaskan pengertian Deep Link, baik itu URL Schemes dan Universal Links. Nah, selanjutnya, bagaimana implementasi kedua hal tersebut? Di bagian kedua ini, ayo, kita bahas bagaimana implementasi URL Schemes terlebih dahulu!

Implementasi URL Schemes

Buka Xcode, masuk ke Project Settings -> Info. Pilih URL Types, kemudian tambahkan URL Schemes baru dengan klik tombol tanda tambah. Terakhir, isi masukan URL Schemes dengan nama scheme baru yang sesuai nama produk dan sesuaikan dengan URL yang disediakan untuk Deep Link (contoh: deep-link).

URL Types di Project Settings -> Info

Pada dasarnya, untuk implementasi URL Schemes dapat ditangani melalui file AppDelegate. Pertama, diperlukan metode untuk memperoleh URL dengan implementasi protokol open url dari UIApplicationDelegate.

Mempersiapkan Aplikasi untuk Handle URL Schemes

Buat model yang akan digunakan untuk menampung data URL. Sebagai contoh, model berisi atribut berikut:

Tambahkan variabel global berupa model tersebut di AppDelegate.

Selanjutnya, periksa URL Schemes yang sedang dibuka. Contoh URL yang diperoleh dalam kode di bawah adalah deep-link://deeplink.app/EVENT?id=10&categoryId=20.

Berdasarkan URL tersebut, kita bisa mengetahui beberapa komponen di dalam URL, yakni:
url.scheme = “deep-link”
url.host = “deeplink.app
url.path
= “/EVENT

Selanjutnya, tangani dan olah data URL yang diperoleh dengan membuat fungsi ‘handleUrl(…)’ di bawah ini.

Cara untuk mendapatkan parameter dari sebuah URL ada di bagian berikut.

Hasil: parameters = [“id”: “10”] dan [“categoryId”: “20”] menunjukkan key “id” dengan value “10” dan key “categoryId” dengan value “20”. Fungsi di atas bisa mendeteksi lebih dari satu parameter sekaligus dan pastinya sesuai dengan parameter yang telah ditentukan di dalam URL.

Dari parameter URL yang sudah diperoleh, selanjutnya bisa dilakukan pengolahan data tersebut diubah menjadi sebuah model.

Setelah mengolah parameter URL menjadi sebuah model, buat view controller yang digunakan sebagai penampung model (“DeepLinkVC”).

Kemudian, buat fungsi handleDeeplink(…) di AppDelegate yang digunakan untuk melempar model dari “AppDelegate” ke “DeepLinkVC”.

Tahapan di atas merupakan tahapan terakhir dalam melempar data parameter dari situs web menuju aplikasi yang akan dibuka.

Demikian pembahasan bagaimana implementasi iOS Deep Link menggunakan URL Schemes. Di artikel selanjutnya alias bagian ketiga dan terakhir, kita akan membahas bagaimana implementasi Universal Links. Selain itu, akan ada simpulan mengenai mana yang lebih baik antara URL Schemes dan Universal Links. Tunggu, ya!



Irfan Tri Handoko, panggilannya Han atau Doko, adalah seorang iOS developer di GITS Indonesia. Sebenarnya, dia ingin terlahir sebagai seorang UX designer, tetapi terkadang kenyataan itu semanis brotowali. Berpengalaman dari seorang mobile app designer dan Android developer, sekarang dia fokus dengan iOS app development dan berusaha menggapai mimpinya di masa depan yang lebih baik.