IOS Խոր կապակցում. URL սխեմա ընդդեմ համընդհանուր հղումների

Հիմա ամեն ինչ միացված է: Այն աշխարհում, որտեղ մենք հաճախ ենք կապում հղումները, ինչպես մենք ենք անում այսօր, ձեր ծրագիրը չի կարող դուրս մնալ հանգույցից: Խորը կապը գաղափար է ոչ միայն ձեր հավելվածը բացելու համար սեղմելի հղում ունենալու, այլև խելացի, որը նաև նավարկելու է ցանկալի ռեսուրսը: Բարելավեք ձեր օգտագործողի փորձը, որն իրականացրել է այս օգտակար դյուրանցումները:

IOS- ում խորը կապի իրականացման երկու եղանակ կա ՝ URL սխեմա և Ունիվերսալ հղումներ: Չնայած URL սխեմաները խորը կապ ունենալու հայտնի միջոց են, Universal հղումները այն նոր եղանակն են, որը Apple- ը իրականացրել է ՝ նույն հղման ներքո ձեր վեբ-էջը և ձեր ծրագիրը հեշտությամբ միացնելու համար:

Ահա համեմատություններ, որոնց համար կարող եք ընտրել, բայց ես կշարունակեմ բացատրել երկուսն էլ.

URL սխեմա

Համընդհանուր հղումներ

Նկատի առեք այստեղ, այս տարբերակներից ոչ մեկը ձեզ չի վերահղում դեպի App Store, եթե ծրագիրը տեղադրված չէ: Հավելվածը տեղադրվելուց հետո IOS- ը կապ կդարձնի այս URL- ների և հավելվածի միջև `հիմք ընդունելով հավելվածի մետատվյալները, եթե ծրագիրը տեղադրված չէ, մետատվյալները այստեղ են, և այդպիսով կապը երբեք չի ստեղծվում: Մենք ստիպված կլինենք դա հետագայում մշակել:

URL սխեմաներ

Եկեք սկսենք URL սխեմաներից: URL սխեմաները շատ հեշտ է իրականացնել: Այն ամենը, ինչ դուք պետք է անեք, պատմեք այն ծրագրին, որը որ սխեման եք ցանկանում օգտագործել: Այս պարզապես բաց Xcode- ի համար անցեք Ծրագրի կայանքներին -> Տեղեկատվություն և ներսից ավելացրեք URL- ի տեսակները »բաժնում ՝ URL- ի նոր սխեմա: Ավելացնել com.myApp- ի մի տեսակ և դա: Այժմ տեղադրեք ձեր ծրագիրը, բացեք հավելվածի նշումները և տպեք com.myApp և սեղմեք enter:

Սպասեք… ոչինչ չի պատահում: Դե, քանի որ IOS- ը դա ճանաչում է որպես հղում, դուք պետք է տեղավորվեք URL ձևաչափին: Դա սխեման է. // ռեսուրս: Այսպիսով, մենք գնում ենք առաջ և մուտքագրում com.myApp: // հիմնական: Այժմ, երբ մենք սեղմում ենք enter, մենք տեսնում ենք, որ IOS- ը հայտնաբերել է հղումը, և երբ կտտացնում ենք այն, թռուցիկը կխնդրի թույլտվություն բացել MyApp- ը Notes- ից:

Հիմա ի՞նչ կասեք, եթե ուզում ենք օգտատիրոջը վերափոխել հավելվածի ներս: Եթե ​​օգտագործողը հպում է com.myApp: // պրոֆիլը, այն պետք է ցույց տա պրոֆիլը կամ com.myApp: // reset_password, նրան տարեք գաղտնաբառի վերափոխման գաղտնաբառի էկրան: Եթե ​​մենք ցանկանում ենք մեկ անգամ արձագանքել ծրագրի ներսին այս URL- ին, ապա մենք պետք է իրականացնենք AppDelegate- ի ներսում մեկ մեթոդ

Այս կերպ com.myApp: // profile? User = ”JuanFra” - ը կհանգեցնի.

url.scheme = "com.myApp"
url.host = «պրոֆիլ»
պարամետրեր = [«օգտվող». «JuanFra»]

Այս ամենը URLSchemes- ի համար է: Հեշտ է: Հիշեք, որ այս URL- ը չի գործի, եթե ծրագիրը տեղադրված չէ, ուստի այն, ինչ IOS- ը կփորձի անել Սաֆարիում կապող օղակը բացելն է, որն ակնհայտորեն ոչ մի տեղ չի հանգեցնի ՝ օգտագործողին թողնելով դատարկ սպիտակ էկրանին նեղացած, թե ինչով է պատահել տեղի ունեցածը . Դրա համար մենք ունենք երկրորդ տարբերակ:

Համընդհանուր հղումներ

Ունիվերսալ հղումները մի փոքր ավելի բարդ են: Ըստ էության, մենք ուզում ենք, որ IOS- ը վեբ էջի URL կապի մեր ծրագրի հետ: Այնուամենայնիվ, դա այնքան էլ պարզ չէ: Պատկերացրեք այս իրավիճակը: Մեր սիրելի «Redd1t» ծրագիրը բոլոր ձևերով, ձևերով և ձևերով է, ինչպես «Reddit» հանրաճանաչ սոցիալական ցանցը: Redd1t- ը նշում է իր մետատվյալներում, երբ օգտագործողը սեղմում է reddit.com- ին, այն վերահղում է իր ծրագրին: Տեսեք խնդիրը այստեղ: IOS- ին անհրաժեշտ է հաստատել մի միջոց, որ իրականում Redd1t- ը www.reddit.com- ի տերն է, բայց ինչպե՞ս: Իհարկե, հարցրեք https://www.reddit.com իհարկե: Reddit.com- ին անհրաժեշտ կլինի տրամադրել այնպիսի ռեսուրս, որը ցույց է տալիս, թե որն է նրա IOS ծրագիրը: Եվ դա անում է հետևյալ կերպ. IOS- ը հայցադիմում կանի https://www.reddit.com/apple-app-site-association և ակնկալում է JSON: JSON- ը պետք է լինի հետևյալը.

{
    «Ծրագրաշարեր».
        «Ծրագրեր». [],
        «Մանրամասներ». [
            {
                «AppID». «T5TQ36Q2SQ.com.reddit.production»,
                «Ուղիներ». [«*»],
            }
        ]
    }
}

Եկեք մի վայրկյան տապալենք այն:

Ծրագրերը նշում են, որ սա իսկապես Համընդհանուր հղման հայտարարության համար է:

Ծրագրերը պետք է մնան որպես դատարկ զանգված (մեջբերում ՝ Apple- ից. «Apple- հավելվածի-կայքի-ասոցիացիայի ֆայլում ծրագրերի բանալին պետք է լինի, և դրա արժեքը պետք է լինի դատարկ զանգ:) Դա, ամենայն հավանականությամբ, այն պատճառով, որ JSON- ի այս տեսակներն օգտագործվում են նաև այլ նպատակներով, բացի համընդհանուր հղումներից, բայց մենք դա հաշվի չենք առնի:

Այնուհետև մանրամասները պարունակում են ձեր ծրագրերի մի շարք և համապատասխան ենթածրագրի յուրաքանչյուր ստորաբաժանման քարտեզագրում:

Յուրաքանչյուր հավելվածի համար պետք է ավելացնեք մի դաշտ, որը կոչվում է appID, որը ստացվում է ձեր թիմի և ձեր ծրագրի փաթեթը համատեղող: Օրինակ, եթե ձեր TeamID- ը 123456 է, և ձեր AppID- ը com.myApp է, ապա արդյունքը 123456.com.myApp է:

Ուղիների դաշտում `տողերի մի շարք, որոնք ներկայացնում են այս հավելվածին համապատասխանող ուղիների արտահայտություններ: Օրինակ, եթե ցանկանում եք, որ myApp.com/store- ը myApp.com/maps- ից այլ ծրագիր բացի, այստեղ կարող եք հայտարարել, որ * ցանկացած տողի համար wildcard է: ցանկացած բնույթի համար վայրի քարտ է: Քանի որ մենք ունենք միայն մեկ ծրագիր, ցանկացած ենթախցիկ կտանի այստեղ, հետևաբար *: Եթե ​​ցանկանում եք բացառել ենթահող, պարզապես սկզբում ՉԻ ավելացրեք

["/ Wwdc / news /", "NOT / videos / wwdc / 2010 / *", "/ videos / wwdc / 201? / *"]

Համակարգը ճիշտ է գնահատում ուղին և կկանգնեցնի ՈՉ-ը գտնելու ժամանակ, այնպես որ հաշվի առեք կարգը ընտրելու ժամանակ:

Իրականում, եթե մենք գնում ենք https://www.reddit.com/apple-app-site-association, մենք կարող ենք տեսնել պատասխանը: Հիշեք հղումը չպետք է ավարտվի .json- ում, և հայցը պետք է վերադարձնի վերնագրի բովանդակության տիպը `դիմում / json:

Եթե ​​ձեր apple-app-site- ասոցիացիայի ստեղծման հետ կապված խնդիրներ կան, Branch.io- ի մեր ընկերները կօգնեն ձեզ իրենց մեծ վավերացուցիչով https://branch.io/res աղբյուր/aasa-validator/

Դա ավարտվելուց հետո մենք այժմ պետք է հավելվածում ավելացնենք ճիշտ մետատվյալները: Նախ, բացեք Xcode- ը, անցեք Ծրագրի պարամետրերին -> հնարավորություններ: Ոլորեք ներքև դեպի Associated Domains և միացրեք այն: Այն միացնելուց հետո մենք պետք է ավելացնենք ցանկացած URL, որն իրականացնում է մեր խնձոր-հավելված-կայք-ասոցիացիայի ռեսուրսը, որին նախորդում են ծրագրի հղումները: Դոմեյնների բաժնում ներմուծեք հավելվածներ ՝ myApp.com: Հենց դա արվի, առաջ գնացեք և փորձեք ձեր ծրագիրը:

Եթե ​​Safari- ով ես գնում եք My App, ծրագիրը հավելվածի տեղադրվելուց հետո պետք է մի փոքր բաներ տեսնեք, որտեղ նշվում է, որ կարող եք այդ հղումը բացել ծրագրի մեջ: Եթե ​​կտտացրեք այն, ծրագիրը գործարկվելու է:

Եթե ​​առաջ եք գնում նոտաներ և գրում եք www.myApp.com, գրառումները դա կճանաչեն որպես հղում և կբացատրեք այն: Եթե ​​այն կտտացրեք այն, ապա այն կբացի ձեր ծրագիրը ուղղակիորեն ՝ նույնիսկ Safari չսկսելով: Դա տեղի կունենա միայն այն դեպքում, եթե օգտագործողը հպում է հղումը, ոչ այն դեպքում, եթե նրանք այցելում են վեբ կայք:

Բայց հիմա, ասենք, որ մենք ուզում ենք օգտվողը ուղղել ցանկալի էկրանի վրա URL պարամետրերի վրա: Դրանից հետո մենք պետք է իրականացնենք հետևյալ մեթոդը AppDelegate- ում:

Այն, ինչը մեզ հնարավորություն է տալիս ունենալ համընդհանուր հղումներ, ոչ միայն պետք է ունենա եզակի URL կայքէջի, IOS հավելվածի և միգուցե նույնիսկ Android հավելվածի համար: Բայց դրանից ավելին, Ունիվերսալ հղումները մեզ թույլ են տալիս ունենալ հետադարձ էջ, եթե օգտագործողը չունի ծրագիրը տեղադրված: Եթե ​​օգտագործողին էլ-նամակ եք ուղարկում ՝ www.myApp.com/app/profile հղումով, դուք կարող եք այնտեղ հյուրընկալել ստատիկ կայք, որը օգտվողին ասում է ՝ գնալ App Store կամ նույնիսկ պարզապես ինքնաբերաբար վերահղել այն, քանի որ, եթե օգտագործողը ունի ծրագիր, հղումը կբացվի այն, և եթե ոչ, այն կընկնի ինտերնետային էջի տակ:

Փաթաթվող իրերը

Հաշվի առնելով այս ամենը, խորը կապը կարևոր նշանակություն ունի այսօրվա հավելվածներում, մանավանդ, եթե էլեկտրոնային ծանուցումներ եք ուղարկում ձեր օգտվողներին: Օգտագործողները ամեն օր ավելի արագ սպառում են բովանդակությունը, և այն ժամանակը, որը նրանց տևում է ձեր ծրագրին հասնելու և ցանկալի վայրում նավարկվելու համար, այն ժամանակն է, երբ դրանք վատնում եք: Այսպիսով, ինչ եք սպասում: