Zoeken…


Invoering

Deep links zijn URL's die gebruikers rechtstreeks naar specifieke inhoud in uw app leiden. U kunt deep links instellen door intentiefilters toe te voegen en gegevens uit inkomende intenties te extraheren om gebruikers naar het juiste scherm in uw app te leiden.

parameters

<data> Attribuut Details
schema Het schemaonderdeel van een URI (hoofdlettergevoelig). Voorbeelden: http , https , ftp
gastheer Het hostgedeelte van een URI (hoofdlettergevoelig). Voorbeelden: google.com , example.org
haven Het poortgedeelte van een URI. Voorbeelden: 80 , 443
pad Het padgedeelte van een URI. Moet beginnen met / . Voorbeelden: / , /about
pathPrefix Een voorvoegsel voor het padgedeelte van een URI. Voorbeelden: /item , /article
pathPattern Een patroon dat overeenkomt met het padgedeelte van een URI. Voorbeelden: /item/.* , /article/[0-9]*
mime type Een mime-type dat past. Voorbeelden: image/jpeg , audio/*

Opmerkingen

Het <intent-filter>

Deze combinatie van <action> en <category> elementen vertelt het Android-systeem dat een specifieke activiteit moet worden gestart wanneer de gebruiker op een koppeling in een andere toepassing klikt.

<intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />

    <data ... />

</intent-filter>

Meerdere <data> -tags

De set deep links die door uw <intent-filter> ondersteund, is het crossproduct van alle <data> -elementen die u in dat intent-filter definieert. De voorbeelden van meerdere domeinen, meerdere paden en meerdere schema's tonen dit aan.

Middelen

AndroidManifest.xml:

<activity android:name="com.example.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="http"
              android:host="www.example.com" />

    </intent-filter>

</activity>

Dit accepteert elke link die begint met http://www.example.com als een diepe link om uw MainActivity te starten.

Meerdere paden op één domein

AndroidManifest.xml:

<activity android:name="com.example.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="http"
              android:host="www.example.com" />

        <data android:path="/" />
        <data android:path="/about" />
        <data android:path="/map" />

    </intent-filter>

</activity>

Hiermee wordt uw MainActivity wanneer de gebruiker op een van deze links klikt:

  • http://www.example.com/
  • http://www.example.com/about
  • http://www.example.com/map

Meerdere domeinen en meerdere paden

AndroidManifest.xml:

<activity android:name="com.example.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="http"
              android:host="www.example.com" />
    
        <data android:scheme="http"
              android:host="www.example2.com" />
    
        <data android:path="/" />
        <data android:path="/map" />
    
    </intent-filter>

</activity>

Hiermee wordt uw MainActivity gestart wanneer de gebruiker op een van deze links klikt:

  • http://www.example.com/
  • http://www.example2.com/
  • http://www.example.com/map
  • http://www.example2.com/map

Zowel http als https voor hetzelfde domein

AndroidManifest.xml:

<activity android:name="com.example.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="http" />
        <data android:scheme="https" />
    
        <data android:host="www.example.com" />
    
        <data android:path="/" />
        <data android:path="/map" />
    
    </intent-filter>

</activity>

Hiermee wordt uw MainActivity gestart wanneer de gebruiker op een van deze links klikt:

  • http://www.example.com/
  • https://www.example.com/
  • http://www.example.com/map
  • https://www.example.com/map

Query-parameters ophalen

public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    
        Intent intent = getIntent();
        Uri data = intent.getData();

        if (data != null) {
            String param1 = data.getQueryParameter("param1");
            String param2 = data.getQueryParameter("param2");
        }
    }

}

Als de gebruiker op een link naar http://www.example.com/map?param1=FOO&param2=BAR klikt, heeft param1 hier de waarde "FOO" en param2 heeft de waarde "BAR" .

PathPrefix gebruiken

AndroidManifest.xml:

<activity android:name="com.example.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="http"
              android:host="www.example.com"
              android:path="/item" />
    
    </intent-filter>

</activity>

Hiermee wordt uw MainActivity gestart wanneer de gebruiker op een koppeling klikt die begint met http://www.example.com/item , zoals:

  • https://www.example.com/item
  • http://www.example.com/item/1234
  • https://www.example.com/item/xyz/details


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow