URL Scheme: nima, qanday ishlaydi va ishlab chiqishda qo'llaniladi

Muallif: IT Sectr Nashr etilgan: 2026-05-14 O'qish vaqti: 8 daq

URL Scheme — bu mobil ilova myapp://path ko'rinishidagi havolalar orqali ochilish uchun operatsion tizimda ro'yxatdan o'tkazadigan maxsus URI protokolidir. RFC 3986 ma'lumotlariga ko'ra, URI sxemasi manzilning barcha keyingi komponentlarining sintaksisi va semantikasini belgilaydi. Bunday havolaga o'tishda tizim ro'yxatdan o'tgan ilovani noyob identifikator bo'yicha aniqlaydi va havoladan olingan parametrlar bilan uni ishga tushiradi. Deep link URL Scheme asosida zamonaviyroq alternativlar paydo bo'lishiga qaramay, mobil platformalarda ilovalararo navigatsiyaning asosiy mexanizmi bo'lib qolmoqda.

Asosiy fikrlar

  • URL Scheme — ilova boshqa ilovalardan yoki brauzerdan ochilish uchun ro'yxatdan o'tkazadigan myapp://path ko'rinishidagi maxsus havola protokoli.
  • Sintaksis RFC 3986 standartiga muvofiq sxema, host, yo'l va query-parametrlarni o'z ichiga oladi, bu ilovalar o'rtasida moslashuvchan ma'lumot uzatishni ta'minlaydi.
  • iOS Info.plist-da CFBundleURLTypes va navigatsiya parametrlari bilan kiruvchi URL Schemelarni qayta ishlash uchun AppDelegate delegatidan foydalanadi.
  • Android deep link-ni maqsadli Activity-ga yo'naltirish uchun AndroidManifest.xml-da action, category va data ko'rsatilgan Intent Filter-ni qo'llaydi.
  • Cheklov — ilova bo'lmaganda URL Scheme ishlamaydi, bu iOS-da Universal Links va Android-da App Links orqali hal qilinadi.

URL Scheme nima?

URL Scheme — bu ilova operatsion tizimda maxsus havolalar orqali chaqiruvlarni qabul qilish uchun ro'yxatdan o'tkazadigan noyob protokol identifikatoridir. Foydalanuvchi myapp://profile/123 kabi havolani bosganda, tizim myapp sxemasini ro'yxatdan o'tkazgan ilovani aniqlaydi va to'liq URI bilan boshqaruvni unga uzatadi. Bunday mexanizm ilovalarga server infratuzilmasisiz ma'lumot almashish va bir-birini ochish imkonini beradi.

URL Scheme kontseptsiyasi to'g'ridan-to'g'ri RFC 3986 veb-standartlaridan olingan bo'lib, unda URI sxemasi har qanday universal resurs identifikatorining birinchi komponentidir. Mobil ishlab chiqishda bu g'oya ilovalararo kommunikatsiya uchun moslashtirilgan bo'lib, bu erda HTTP server o'rniga havolani qayta ishlaydigan ilovaning o'zi harakat qiladi.

Mashhur URL Scheme misollari

Ko'plab mashhur ilovalar uchinchi tomon xizmatlari bilan integratsiya uchun o'z URL Schemelarini ro'yxatdan o'tkazadi. Masalan, Spotify spotify:// sxemasidan, Telegram — tg://, Instagram esa instagram:// sxemasidan foydalanadi. Dasturchilar ko'pincha ichki navigatsiya va ekranlarni sinovdan o'tkazish uchun appname:// ko'rinishidagi sxemani yaratadilar.

URL Schemalar hali ham push bildirishnomalarida, elektron pochta kampaniyalarida va QR kodlarda keng qo'llaniladi, bu erda ilovaning ma'lum bir bo'limiga zudlik bilan o'tish talab qilinadi. Biroq, iOS 9 va Android 6 dan boshlab, asta-sekin yalang'och sxemalarni to'ldiradigan va almashtiradigan muqobil mexanizmlar paydo bo'ldi.

URL Scheme sintaksisi: sxema, host va yo'l

Maxsus URI tuzilishi umumiy RFC 3986 spetsifikatsiyasiga bo'ysunadi va bir necha komponentlardan iborat. Sxema birinchi ko'rsatiladi va manzilning qolgan qismidan ikki nuqta bilan ajratiladi. Sxemadan keyin host, port, yo'l, query-parametrlari va fragment kelishi mumkin, ularning har biri ixtiyoriydir.

To'liq sintaksis scheme://host/path?key=value#fragment ko'rinishida. Sxema yagona majburiy elementdir, qolganlari muayyan amalga oshirish ehtiyojlari bilan belgilanadi. Sxemadan keyin qo'sh qiyshiq chiziq tarixan HTTP-dan olingan va spetsifikatsiya bo'yicha qat'iy majburiy emas, lekin hamma joyda konvensiya sifatida ishlatiladi.

URI komponentlari

URI tuzilishini vizual tasvirlash uchun komponentlar jadvalidan foydalaniladi. Har bir element o'z maqsadi va majburiylik darajasiga ega.

KomponentMisolMajburiylik
SchememyappHa
HostprofileYo'q
Path/user/42Yo'q
Query?id=42&tab=mainYo'q
Fragment#section2Yo'q

Dasturchilar URI tuzilishini erkin tanlashlari mumkin, bu moslashuvchanlikni yaratadi, ammo ilovaning turli versiyalari o'rtasida moslik muammolarini keltirib chiqaradi. URL Scheme formatini ilovaning ommaviy API qismi sifatida hujjatlashtirish va o'zgartirishda versiyalash tavsiya etiladi.

iOS-da URL Scheme qanday ishlaydi

iOS loyihaning Info.plist faylida har bir URL Scheme-ni aniq ro'yxatdan o'tkazishni talab qiladi. Dasturchi CFBundleURLTypes massivini qo'shadi, uning har bir elementi identifikator (CFBundleURLName) va qo'llab-quvvatlanadigan sxemalar ro'yxatini (CFBundleURLSchemes) o'z ichiga oladi. Ro'yxatdan o'tgandan so'ng, tizim avtomatik ravishda ro'yxatdan o'tgan sxemalar bo'yicha barcha kiruvchi chaqiruvlarni ilovaga yo'naltiradi.

Kiruvchi URL Scheme-ni qayta ishlash ilova delegatida application(_:open:options:) metodi orqali amalga oshiriladi. Bu metod navigatsiya qarorini qabul qilish uchun yo'l va query-parametrlari chiqariladigan URL obyektini oladi. Qayta ishlash operatsiya muvaffaqiyatini ko'rsatadigan Bool qiymatini qaytarishi kerak.

AppDelegate-da qayta ishlash

Quyida Swift tilida URL Scheme ishlovchisini amalga oshirish namunasi keltirilgan. Kod URLComponents yordamida kiruvchi URI-dan host va query-parametrlarini chiqarishni ko'rsatadi.

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-parametrlarini xavfsiz tahlil qilish uchun URLComponents-dan foydalanadi. Bu yondashuv qatorni qo'lda tahlil qilishdan afzal, chunki u avtomatik ravishda foiz kodlashni va parametr qiymatlaridagi maxsus belgilarni dekodlashni boshqaradi.

Android-da URL Scheme qanday ishlaydi

Android URL Scheme asosida deep link-larni yo'naltirish uchun Intent Filter tizimidan foydalanadi. Dasturchi havolani qayta ishlashi kerak bo'lgan Activity tegi ichida AndroidManifest.xml-da filtrni e'lon qiladi. Filtr action VIEW, BROWSABLE va DEFAULT kategoriyalarini, shuningdek sxema, host va pathPrefix ko'rsatilgan data tegini o'z ichiga oladi.

Foydalanuvchi maxsus sxemali havolani bosganda, tizim barcha o'rnatilgan ilovalarning Intent Filter-larini tekshiradi. Agar bir nechta mos ilovalar topilsa, foydalanuvchiga tanlash dialog oynasi taqdim etiladi. BROWSABLE kategoriyasi havolani brauzerdan qayta ishlashga ruxsat beradi.

Intent Filter sozlamalari

Activity-da myapp sxemasini qayta ishlash uchun AndroidManifest.xml-da Intent Filter deklaratsiyasi namunasi. Action va category kombinatsiyasi deep link-ni to'g'ri yo'naltirish uchun majburiydir.

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>

Filtrlarni sozlagandan so'ng, Activity-da URI olish uchun intent.getData() chaqirilishi kerak. Intent va ma'lumotlarni nullga tekshirish muhim, chunki Activity deep link-siz, masalan, ishga tushirgichdan standart ishga tushirishda boshlanishi mumkin.

URL Scheme orqali parametrlarni uzatish

URL Scheme-dagi query-parametrlari so'roq belgisidan keyin kalit=qiymat formatida, ampersand bilan ajratilgan holda uzatiladi. Bu format HTTP so'rovlari bilan bir xil va platformaning standart vositalari bilan oson qayta ishlanadi. Parametrlar URI ruxsat etilgan to'plamiga kirmaydigan barcha belgilar uchun foiz kodlash yordamida kodlanishi kerak.

Parametrli to'liq havola namunasi: myapp://profile?userId=42&source=email&ref=abc123. URL chiqarilgandan so'ng, ilova ketma-ket barcha query-items-ni tahlil qiladi va ularning qiymatlari asosida maqsadli ekranga navigatsiya qarorini qabul qiladi.

URI uzunligi cheklovi

Murakkab ma'lumotlarni uzatishda URI uzunligi cheklovini hisobga olish muhim. iOS-da URL Scheme maksimal uzunligi 2 KB bilan cheklangan, undan keyin tizim havolani qisqartiradi. Android-da chegara taxminan 8 KB, ammo aniq qiymat operatsion tizim versiyasiga va qurilma ishlab chiqaruvchisiga bog'liq. Katta hajmdagi ma'lumotlar uchun faqat sessiya identifikatorini URL Scheme orqali uzatish, qolgan ma'lumotlarni esa serverdan yuklash tavsiya etiladi.

URL Scheme cheklovlari va alternativlari

URL Scheme-ning asosiy kamchiligi — ilova qurilmada o'rnatilmagan bo'lsa, havolani qayta ishlay olmasligidir. Brauzer xatolikni ko'rsatadi va foydalanuvchi o'tish kontekstini yo'qotadi. Ushbu muammoni hal qilish uchun Apple iOS 9-da Universal Links, Google esa Android 6-da App Links-ni joriy qildi. Ikkala mexanizm ilovaga bog'langan veb-domen orqali ro'yxatdan o'tkaziladi.

Universal Links va App Links oddiy HTTPS havolalari kabi ishlaydi, ammo ilova o'rnatilgan bo'lsa, uni tanlash dialogisiz ochadi. Agar ilova o'rnatilmagan bo'lsa, havola bir xil domenda veb-sahifani ochadi, foydalanuvchi tajribasini saqlaydi. Bu ularni ishlab chiqarish muhiti uchun afzal qilingan alternativaga aylantiradi.

Fallback mexanizmlari

iOS va Android-da URL Scheme uchun o'rnatilgan fallback mexanizmi mavjud emas. Dasturchilar oraliq server yechimlaridan foydalanadilar: havola ilova o'rnatilishini JavaScript orqali tekshiradigan va yo sxemaga yoki ilovalar do'koniga yo'naltiradigan veb-sahifaga olib boradi. Firebase Dynamic Links va Branch.io kechiktirilgan deep link qo'llab-quvvatlashi bilan ushbu muammoning tayyor yechimlarini taklif qiladi, ular avtomatik ravishda o'rnatish holatini aniqlaydi va foydalanuvchini o'z server pipeline-ni ishlab chiqish zaruratisiz yo'naltiradi.

iOS 15+ va Android 12+-da URL Scheme dan foydalanishda qo'shimcha murakkablik paydo bo'ladi, bu erda maxfiylik qoidalari qattiqlashtirilgan. Safari oldindan tasdiqlamasdan ro'yxatdan o'tmagan sxemani ochish urinishlarini bloklaydi, Android 12 esa PackageManager orqali o'rnatilgan ilovalarning ko'rinishini cheklaydi. Ushbu o'zgarishlar URL Scheme-dan ilovalararo o'zaro ta'sir uchun foydalanishni platformalarning oldingi versiyalariga qaraganda kamroq ishonchli qiladi.

Tez-tez beriladigan savollar

URL Scheme Universal Links-dan nima bilan farq qiladi?

URL Scheme shifrlashsiz maxsus protokoldan foydalanadi, Universal Links esa domen tekshiruvi bilan HTTPS orqali ishlaydi. Universal Links ilova tanlash dialogini chaqirmaydi va ilova qurilmada bo'lmaganda to'g'ri qayta ishlanadi.

URL Scheme kirill belgilarini o'z ichiga olishi mumkinmi?

Ha, lekin barcha ASCII bo'lmagan belgilar RFC 3986 ga muvofiq percent-encoding orqali kodlanishi kerak. Eski operatsion tizim va brauzer versiyalari bilan moslikni ta'minlash uchun URL Scheme-da kirilldan qochish tavsiya etiladi.

Bitta ilova nechta URL Scheme ro'yxatdan o'tkazishi mumkin?

Na iOS, na Android-da sxemalar sonida cheklov yo'q. Amalda ilovalar birdan beshgacha sxemadan foydalanadi. Masalan, Telegram tg://, t.me/, telegram:// va telegram.me:// sxemalarini ro'yxatdan o'tkazadi.

Qurilmamning URL Scheme-ni qo'llab-quvvatlashini qanday tekshirish mumkin?

iOS-da ro'yxatdan o'tgan sxema mavjud bo'lganda true qaytaradigan canOpenURL(_:) metodidan foydalaniladi. Android-da tekshirish PackageManager.queryIntentActivities() orqali amalga oshiriladi. Ikkala platforma konfiguratsiyada sxemani oldindan ko'rsatishni talab qiladi.

URL Scheme orqali parollarni uzatish mumkinmi?

Yo'q, URL Scheme ma'lumotlarni shifrlamaydi. Xuddi shu sxemani ro'yxatdan o'tkazgan har qanday ilova havolani ushlab qolishi mumkin. Xavfsizlik uchun HTTPS bilan Universal Links yoki protokol darajasida ma'lumotlarni shifrlashdan foydalaning.

Xulosa

  • URL Scheme — RFC 3986 standartiga muvofiq mobil platformalarda ilovalararo o'zaro ta'sir uchun maxsus URI protokoli.
  • Ro'yxatdan o'tkazish sxemasi iOS uchun Info.plist-da va Android uchun AndroidManifest.xml-da Intent Filter mexanizmi orqali amalga oshiriladi.
  • Qayta ishlash kiruvchi havola iOS-da ilova delegati orqali, Android-da esa maqsadli Activity-dagi intent.getData() orqali amalga oshiriladi.
  • Parametrlar foiz kodlash bilan query-string orqali uzatiladi va iOS-da 2 KB gacha uzunlik cheklovi mavjud.
  • Cheklov — URL Scheme ilova bo'lmaganda ishlamaydi; to'g'ri fallback uchun Universal Links yoki App Links talab qilinadi.
  • Alternativlar — Universal Links (iOS), App Links (Android) va tijorat platformalari Firebase Dynamic Links va Branch.io.
  • Xavfsizlik — URL Scheme ma'lumotlarni shifrlamaydi, shuning uchun maxfiy ma'lumotlarni uzatish uchun mos emas.

Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz

IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.

Loyihani muhokama qilish

Shuningdek o'qing