URL Scheme: nədir, necə işləyir və inkişafda istifadə olunur

Müəllif: IT Sectr Dərc olunub: 2026-05-14 Oxuma vaxtı: 8 dəq

URL Scheme — mobil tətbiqin əməliyyat sistemində myapp://path kimi linklər vasitəsilə açılmaq üçün qeydiyyatdan keçirdiyi xüsusi URI protokoludur. RFC 3986-ya əsasən, URI sxemi ünvanın bütün sonrakı komponentlərinin sintaksisini və semantikasını müəyyən edir. Belə bir linkə keçid zamanı sistem qeydiyyatdan keçmiş tətbiqi unikal identifikatorla müəyyən edir və linkdən çıxarılmış parametrlərlə onu işə salır. Deep link URL Scheme əsasında daha müasir alternativlərin yaranmasına baxmayaraq, mobil platformalarda tətbiqlərarası naviqasiyanın əsas mexanizmi olaraq qalır.

Əsas məqamlar

  • URL Scheme — tətbiqin digər tətbiqlərdən və ya brauzerdən açılmaq üçün qeydiyyatdan keçirdiyi myapp://path tipli xüsusi link protokoludur.
  • Sintaksis RFC 3986 standartına uyğun olaraq sxem, host, yol və query-parametrləri əhatə edir ki, bu da tətbiqlər arasında çevik məlumat ötürməni təmin edir.
  • iOS Info.plist-də CFBundleURLTypes və naviqasiya parametrləri ilə daxil olan URL Scheme-ləri emal etmək üçün AppDelegate delegatından istifadə edir.
  • Android deep link-i hədəf Activity-ə yönləndirmək üçün AndroidManifest.xml-də action, category və data göstərilməklə Intent Filter tətbiq edir.
  • Məhdudiyyət — tətbiq olmadıqda URL Scheme işləmir, bu iOS-da Universal Links və Android-də App Links vasitəsilə həll olunur.

URL Scheme nədir?

URL Scheme — tətbiqin əməliyyat sistemində xüsusi linklər vasitəsilə çağırışları qəbul etmək üçün qeydiyyatdan keçirdiyi unikal protokol identifikatorudur. İstifadəçi myapp://profile/123 kimi bir linkə kliklədikdə, sistem myapp sxemini qeydiyyatdan keçirmiş tətbiqi müəyyən edir və tam URI ilə idarəetməni ona ötürür. Bu mexanizm tətbiqlərə server infrastrukturu olmadan məlumat mübadiləsi aparmağa və bir-birini açmağa imkan verir.

URL Scheme konsepsiyası birbaşa RFC 3986 internet standartlarından götürülmüşdür, burada URI sxemi hər bir universal resurs identifikatorunun ilk komponentidir. Mobil inkişafda bu fikir tətbiqlərarası kommunikasiya üçün uyğunlaşdırılmışdır, burada HTTP serveri əvəzinə linki emal edən tətbiqin özü çıxış edir.

Məşhur URL Scheme nümunələri

Bir çox məşhur tətbiqlər üçüncü tərəf xidmətləri ilə inteqrasiya üçün öz URL Scheme-lərini qeydiyyatdan keçirir. Məsələn, Spotify spotify:// sxemindən, Telegram — tg://, Instagram isə instagram:// sxemindən istifadə edir. Tərtibatçılar tez-tez daxili naviqasiya və ekranların sınaqdan keçirilməsi üçün appname:// tipli sxem yaradırlar.

URL Scheme hələ də push bildirişlərində, e-poçt kampaniyalarında və QR kodlarda geniş istifadə olunur, burada tətbiqin konkret bölməsinə dərhal keçid tələb olunur. Bununla belə, iOS 9 və Android 6-dan başlayaraq, tədricən çılpaq sxemləri tamamlayan və əvəz edən alternativ mexanizmlər meydana çıxmışdır.

URL Scheme sintaksisi: sxem, host və yol

Xüsusi URI-nin strukturu ümumi RFC 3986 spesifikasiyasına tabedir və bir neçə komponentdən ibarətdir. Sxem birinci göstərilir və ünvanın qalan hissəsindən iki nöqtə ilə ayrılır. Sxemdən sonra host, port, yol, query-parametrləri və fraqment gələ bilər, hər biri isteğe bağlıdır.

Tam sintaksis scheme://host/path?key=value#fragment kimi görünür. Sxem yeganə məcburi elementdir, qalanları konkret tətbiqin ehtiyacları ilə müəyyən edilir. Sxemdən sonra qoşa slash tarixən HTTP-dən götürülmüşdür və spesifikasiyaya görə ciddi şəkildə məcburi deyil, lakin hər yerdə konvensiya kimi istifadə olunur.

URI komponentləri

URI strukturunun vizual təsviri üçün komponentlər cədvəlindən istifadə olunur. Hər bir elementin öz təyinatı və məcburilik səviyyəsi var.

KomponentNümunəMəcburilik
SchememyappBəli
HostprofileXeyr
Path/user/42Xeyr
Query?id=42&tab=mainXeyr
Fragment#section2Xeyr

Tərtibatçılar URI strukturunu sərbəst seçə bilərlər ki, bu da çeviklik yaradır, lakin tətbiqin müxtəlif versiyaları arasında uyğunluq problemləri yaradır. URL Scheme formatını tətbiqin ictimai API hissəsi kimi sənədləşdirmək və dəyişiklik zamanı versiyalamaq tövsiyə olunur.

iOS-da URL Scheme necə işləyir

iOS layihənin Info.plist faylında hər bir URL Scheme-in açıq şəkildə qeydiyyatdan keçirilməsini tələb edir. Tərtibatçı CFBundleURLTypes massivi əlavə edir, onun hər bir elementi identifikator (CFBundleURLName) və dəstəklənən sxemlərin siyahısını (CFBundleURLSchemes) ehtiva edir. Qeydiyyatdan sonra sistem avtomatik olaraq qeydiyyatdan keçmiş sxemlər üzrə bütün daxil olan çağırışları tətbiqə yönləndirir.

Daxil olan URL Scheme-in emalı tətbiqin AppDelegate-də application(_:open:options:) metodu vasitəsilə baş verir. Bu metod naviqasiya qərarı vermək üçün yol və query-parametrlərinin çıxarıldığı URL obyektini alır. Emal əməliyyatın uğurlu olduğunu göstərən Bool dəyərini qaytarmalıdır.

AppDelegate-də emal

Aşağıda Swift dilində URL Scheme emalçısının tətbiq nümunəsi verilmişdir. Kod URLComponents vasitəsilə daxil olan URI-dən host və query-parametrlərinin çıxarılmasını nümayiş etdirir.

swift
func application(
    _ app: UIApplication,
    open url: URL,
    options: [UIApplication.OpenURLOptionsKey: Any]
) -> Bool {
    let host = url.host
    let params = URLComponents(
        url: url,
        resolvingAgainstBaseURL: false
    )?.queryItems
    if host == "profile" {
        navigateToProfile(params)
    }
    return true
}

Metod query-parametrlərinin təhlükəsiz parsellenməsi üçün URLComponents-dən istifadə edir. Bu yanaşma sətrin əl ilə təhlilindən üstündür, çünki avtomatik olaraq faiz kodlaşdırmasını və parametr dəyərlərində xüsusi simvolların dekodlaşdırılmasını idarə edir.

Android-də URL Scheme necə işləyir

Android URL Scheme əsasında deep link-lərin yönləndirilməsi üçün Intent Filter sistemindən istifadə edir. Tərtibatçı linki emal etməli olan Activity teqinin içərisində AndroidManifest.xml-də filtr elan edir. Filtr action VIEW, BROWSABLE və DEFAULT kateqoriyalarını, həmçinin sxem, host və pathPrefix göstərilməklə data teqini ehtiva edir.

İstifadəçi xüsusi sxemli linkə kliklədikdə, sistem bütün quraşdırılmış tətbiqlərin Intent Filter-lərini yoxlayır. Bir neçə uyğun tətbiq tapılarsa, istifadəçiyə seçim dialoqu təqdim olunur. BROWSABLE kateqoriyası linkin brauzerdən emalına icazə verir.

Intent Filter konfiqurasiyası

Activity-də myapp sxeminin emalı üçün AndroidManifest.xml-də Intent Filter bəyannaməsi nümunəsi. Action və category kombinasiyası deep link-in düzgün yönləndirilməsi üçün məcburidir.

xml
<activity android:name=".MainActivity">
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category
            android:name="android.intent.category.DEFAULT" />
        <category
            android:name="android.intent.category.BROWSABLE" />
        <data
            android:scheme="myapp"
            android:host="profile"
            android:pathPrefix="/user" />
    </intent-filter>
</activity>

Filtrləri konfiqurasiya etdikdən sonra Activity-də URI əldə etmək üçün intent.getData() çağırılmalıdır. Intent və məlumatları null olub-olmamasını yoxlamaq vacibdir, çünki Activity deep link olmadan, məsələn, launcher-dən standart başlatma zamanı işə salına bilər.

URL Scheme vasitəsilə parametrlərin ötürülməsi

URL Scheme-də query-parametrləri sual işarəsindən sonra açar=dəyər formatında, ampersandla ayrılaraq ötürülür. Bu format HTTP sorğuları ilə eynidir və platformanın standart vasitələri ilə asanlıqla emal olunur. Parametrlər URI-nin icazə verilən dəstinə daxil olmayan bütün simvollar üçün faiz kodlaşdırması ilə kodlaşdırılmalıdır.

Parametrləri olan tam link nümunəsi: myapp://profile?userId=42&source=email&ref=abc123. URL çıxarıldıqdan sonra tətbiq ardıcıl olaraq bütün query-items-ləri təhlil edir və onların dəyərləri əsasında hədəf ekrana naviqasiya qərarı verir.

URI uzunluğunun məhdudiyyəti

Mürəkkəb məlumatları ötürərkən URI uzunluğu məhdudiyyətini nəzərə almaq vacibdir. iOS-da URL Scheme-in maksimum uzunluğu 2 KB ilə məhdudlaşır, bundan sonra sistem linki kəsir. Android-də limit təxminən 8 KB-dır, lakin dəqiq dəyər OS versiyasından və cihaz istehsalçısından asılıdır. Böyük həcmli məlumatlar üçün yalnız sessiya identifikatorunu URL Scheme vasitəsilə ötürmək, qalan məlumatları isə serverdən yükləmək tövsiyə olunur.

URL Scheme-in məhdudiyyətləri və alternativləri

URL Scheme-in əsas çatışmazlığı — tətbiq cihazda quraşdırılmayıbsa, linki emal edə bilməməsidir. Brauzer xəta göstərir və istifadəçi keçid kontekstini itirir. Bu problemi həll etmək üçün Apple iOS 9-da Universal Links, Google isə Android 6-da App Links tətbiq etmişdir. Hər iki mexanizm tətbiqə bağlı veb-domain vasitəsilə qeydiyyatdan keçir.

Universal Links və App Links adi HTTPS linkləri kimi işləyir, lakin tətbiq quraşdırılıbsa, onu seçim dialoqu olmadan açır. Tətbiq quraşdırılmayıbsa, link eyni domendə veb-səhifəni açır, istifadəçi təcrübəsini qoruyur. Bu onları istehsal mühiti üçün üstünlük verilən alternativ edir.

Fallback mexanizmləri

iOS və Android-də URL Scheme üçün daxili fallback mexanizmi yoxdur. Tərtibatçılar aralıq server həllərindən istifadə edir: link tətbiqin quraşdırılmasını JavaScript vasitəsilə yoxlayan və ya sxemə, ya da tətbiq mağazasına yönləndirən veb-səhifəyə aparır. Firebase Dynamic Links və Branch.io təxirə salınmış deep link dəstəyi ilə bu problemin hazır həllərini təklif edir, onlar avtomatik olaraq quraşdırma statusunu müəyyən edir və istifadəçini öz server pipeline-ni hazırlamaq ehtiyacı olmadan yönləndirir.

iOS 15+ və Android 12+-də URL Scheme istifadə edərkən əlavə mürəkkəblik yaranır, burada məxfilik qaydaları sərtləşdirilmişdir. Safari əvvəlcədən təsdiq olmadan qeydiyyatdan keçməmiş sxemi açmaq cəhdlərini bloklayır, Android 12 isə PackageManager vasitəsilə quraşdırılmış tətbiqlərin görünməsini məhdudlaşdırır. Bu dəyişikliklər URL Scheme-dən tətbiqlərarası qarşılıqlı əlaqə üçün istifadəni platformaların əvvəlki versiyalarından daha az etibarlı edir.

Tez-tez verilən suallar

URL Scheme Universal Links-dən nə ilə fərqlənir?

URL Scheme şifrələmə olmadan xüsusi protokoldan istifadə edir, Universal Links isə domain yoxlanışı ilə HTTPS vasitəsilə işləyir. Universal Links tətbiq seçimi dialoqunu çağırmır və tətbiq cihazda olmadıqda düzgün emal olunur.

URL Scheme kiril simvolları ehtiva edə bilərmi?

Bəli, lakin bütün qeyri-ASCII simvollar RFC 3986-ya uyğun olaraq percent-encoding vasitəsilə kodlaşdırılmalıdır. Köhnə OS və brauzer versiyaları ilə uyğunluğu təmin etmək üçün URL Scheme-də kirildən qaçınmaq tövsiyə olunur.

Bir tətbiq neçə URL Scheme qeydiyyatdan keçirə bilər?

Nə iOS, nə də Android-də sxemlərin sayında məhdudiyyət yoxdur. Təcrübədə tətbiqlər birdən beşə qədər sxemdən istifadə edir. Məsələn, Telegram tg://, t.me/, telegram:// və telegram.me:// sxemlərini qeydiyyatdan keçirir.

Cihazımın URL Scheme-i dəstəklədiyini necə yoxlamaq olar?

iOS-da qeydiyyatdan keçmiş sxem olduqda true qaytaran canOpenURL(_:) metodundan istifadə olunur. Android-də yoxlama PackageManager.queryIntentActivities() vasitəsilə aparılır. Hər iki platforma konfiqurasiyada sxemin əvvəlcədən göstərilməsini tələb edir.

URL Scheme vasitəsilə şifrələr ötürmək olarmı?

Xeyr, URL Scheme məlumatları şifrələmir. Eyni sxemi qeydiyyatdan keçirmiş hər hansı tətbiq linki ələ keçirə bilər. Təhlükəsizlik üçün HTTPS ilə Universal Links və ya protokol səviyyəsində məlumatların şifrələnməsindən istifadə edin.

Nəticə

  • URL Scheme — RFC 3986 standartına uyğun mobil platformalarda tətbiqlərarası qarşılıqlı əlaqə üçün xüsusi URI protokolu.
  • Qeydiyyat sxemi iOS üçün Info.plist-də və Android üçün AndroidManifest.xml-də Intent Filter mexanizmi vasitəsilə aparılır.
  • Emal daxil olan link iOS-da tətbiq delegatı vasitəsilə, Android-də isə hədəf Activity-də intent.getData() vasitəsilə baş verir.
  • Parametrlər faiz kodlaşdırması ilə query-string vasitəsilə ötürülür və iOS-da 2 KB uzunluq məhdudiyyəti var.
  • Məhdudiyyət — URL Scheme tətbiq olmadıqda işləmir; düzgün fallback üçün Universal Links və ya App Links tələb olunur.
  • Alternativlər — Universal Links (iOS), App Links (Android) və kommersiya platformaları Firebase Dynamic Links və Branch.io.
  • Təhlükəsizlik — URL Scheme məlumatları şifrələmir, buna görə də məxfi məlumatların ötürülməsi üçün uyğun deyil.

Açar təslim mobil tətbiq hazırlayacağıq

IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.

Layihəni müzakirə et

Həm də oxuyun