luo syviä linkkejä sovelluksen sisältöön

kun napsautettu linkki tai ohjelmallinen pyyntö vetoaa web-URI-aikeeseen, Android-järjestelmä kokeilee jokaista seuraavista toimista peräkkäisessä järjestyksessä, kunnes pyyntö onnistuu:

  1. Avaa käyttäjän valitsema sovellus, joka voi käsitellä URI: tä, jos sellainen on nimetty.
  2. avaa ainoa käytettävissä oleva sovellus, joka pystyy käsittelemään uria.
  3. salli käyttäjän valita sovellus dialogista.

seuraa alla olevia ohjeita luodaksesi ja testataksesi linkkejä sisältöösi. Voit myös käyttää App Links Assistant Android Studio lisätä Android App linkkejä.

lisää intent-suodattimet saapuville linkeille

luodaksesi linkin sovelluksen sisältöön, lisää intent-suodatin, joka sisältää nämä elementit ja attribuuttiarvot manifestissasi:

<action>MääritäACTION_VIEWintent-toiminto, jotta intent-suodatin voidaan saavuttaa Google-hausta.<data>lisää yksi tai useampi<data>tagi, joista jokainen edustaa URI-muotoa, joka ratkaisee toiminnon. Tunnisteen<data>on sisällettävä vähintään attribuuttiandroid:scheme.

voit lisätä lisää attribuutteja tarkentaaksesi edelleen sitä URI-tyyppiä, jonka toiminto hyväksyy. Sinulla voi esimerkiksi olla useita toimintoja, jotka hyväksyvät samanlaiset urit, mutta jotka eroavat yksinkertaisesti polun nimen perusteella. Tässä tapauksessa käytä android:path – attribuuttia tai sen pathPattern – tai pathPrefix – variantteja erottaaksesi, mikä toiminto järjestelmän tulisi avata eri URI-poluille.

<category>sisältävätBROWSABLEluokan. Se on tarpeen, jotta aiesuodatin on saatavilla webbrowser. Ilman sitä, napsauttamalla linkkiä selaimessa ei voi ratkaista sovelluksen.

mukana myös DEFAULT – Luokka.Näin sovellus voi vastata implisiittisiin aikomuksiin. Ilman tätä, toiminta voidaan käynnistää vain, jos tarkoitus määrittää sovelluksen komponentin nimi.

seuraavassa XML-pätkässä näytetään, miten voit määrittää manifestissasi olevan intentaalisuodattimen syvälinkitystä varten. Urit "example://gizmos" ja"http://www.example.com/gizmos" ratkaisevat tämän toiminnon.

<activity android:name="com.example.android.GizmosActivity" android:label="@string/title_gizmos" > <intent-filter android:label="@string/filter_view_http_gizmos"> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <!-- Accepts URIs that begin with "http://www.example.com/gizmos" --> <data android:scheme="http" android:host="www.example.com" android:pathPrefix="/gizmos" /> <!-- note that the leading "/" is required for pathPrefix--> </intent-filter> <intent-filter android:label="@string/filter_view_example_gizmos"> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <!-- Accepts URIs that begin with "example://gizmos" --> <data android:scheme="example" android:host="gizmos" /> </intent-filter></activity>

huomaa, että kaksi intent-suodatinta eroavat toisistaan vain <data> – elementin perusteella.Vaikka samaan suodattimeen on mahdollista sisällyttää useita <data> elementtejä, on tärkeää, että luot erilliset suodattimet, Kun haluat ilmoittaa uniiteurlit (kuten tietyn yhdistelmän scheme ja host), koska monet <data> elementit samassa intent-suodattimessa ovat itse asiassa yhdistettyinä yhteen, jotta kaikki niiden yhdistettyjen ominaisuuksien vaihtelut voidaan ottaa huomioon. Harkitse esimerkiksi seuraavia asioita:

<intent-filter> ... <data android:scheme="https" android:host="www.example.com" /> <data android:scheme="app" android:host="open.my.app" /></intent-filter>

saattaa näyttää siltä, että tämä tukee vain https://www.example.com jaapp://open.my.app. Todellisuudessa se kuitenkin tukee näitä kahta sekä näitä:app://www.example.com ja https://open.my.app.

kun olet lisännyt appmanifestiisi intent-suotimia, joissa on aktiivisuussisällön urit, Android pystyy reitittämään minkä tahansa Intent, jolla on vastaavat urit sovellukseesi suorituksen aikana.

lisätietoja intent-suodattimien määrittelystä on ohjeaiheessa Salli muiden sovellusten aloittaa toimintasi.

Lue tiedot saapuvista intenteistä

kun järjestelmä aloittaa toimintansa intent-suodattimen kautta, voit käyttää Intent: n antamia tietoja määrittääksesi, mitä sinun tarvitsee tehdä. Soita getData() jagetAction() – menetelmiin, joilla haetaan saapuvaan Intentliittyvää tietoa ja toimintaa. Voit peruuttaa nämä menetelmät milloin tahansa toiminnan elinkaaren aikana, mutta sinun tulisi yleensä tehdä niin varhaisten takaisinsoittojen, kuten onCreate() taionStart(), aikana.

tässä pätkä, joka näyttää, miten tietoja haetaanIntent:

Kotlin

override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.main) val action: String? = intent?.action val data: Uri? = intent?.data}

Jaava

@Overridepublic void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Intent intent = getIntent(); String action = intent.getAction(); Uri data = intent.getData();}

noudata näitä parhaita käytäntöjä parantaaksesi käyttäjäkokemusta:

  • syvän linkin pitäisi viedä käyttäjät suoraan sisältöön, ilman kehotteita, interstitiaalisivuja tai kirjautumisia. Varmista, että käyttäjät voivat nähdä sovelluksen sisällön, vaikka he eivät olisi koskaan aiemmin avanneet sovellusta.On OK pyytää käyttäjiä myöhemmistä vuorovaikutuksista tai kun he avaavat sovelluksen Kantoraketilta.
  • seuraa navigoinnissa kuvattuja suunnitteluohjeita Back and Up niin, että sovelluksesi vastaa käyttäjien odotuksia taaksepäin navigoinnista, kun he tulevat sovellukseesi syvän linkin kautta.

Test your deep links

you can use the Android DebugBridge with the activity manager (am) tool to test that the intent filterURIs you determined for deep linking resolve to the right app activity. Voit suorittaa ADB-komennon laitetta tai emulaattoria vastaan.

intent-suodattimen URI-testin yleinen syntaksi adb: llä on:

$ adb shell am start -W -a android.intent.action.VIEW -d <URI> <PACKAGE>

esimerkiksi, komento alla yrittää tarkastella kohde sovelluksen toimintaa, joka liittyy määritettyyn URI.

$ adb shell am start -W -a android.intent.action.VIEW -d "example://gizmos" com.example.android

edellä määrittämäsi manifest declaration ja intent handler määrittelevät sovelluksen ja verkkosivuston välisen yhteyden ja sen, mitä tulee tehdä saapuville linkeille. Jotta järjestelmä kuitenkin kohtelisi sovellustasi Oletuskäsittelijänä Uri-joukolle, sinun on myös pyydettävä järjestelmää vahvistamaan tämä yhteys. Seuraava oppitunti selittää, miten tämä todentaminen toteutetaan.

Vastaa

Sähköpostiosoitettasi ei julkaista.

Previous post Kuka on Toni Kukoc? Entinen Chicago Bullsin pelaaja ja Michael Jordanin The Last Dance
Next post Croup & astma-ReMed Natural Medicine Clinic