Suche…


Einführung

Deep Links sind URLs, über die Benutzer direkt zu bestimmten Inhalten in Ihrer App gelangen. Sie können Deep Links einrichten, indem Sie Absichtsfilter hinzufügen und Daten aus eingehenden Absichten extrahieren, um Benutzer zum rechten Bildschirm Ihrer App zu führen.

Parameter

<data> Attribut Einzelheiten
planen Der Schemateil einer URI (Groß- und Kleinschreibung beachten). Beispiele: http , https , ftp
Wirt Der Host- Teil einer URI (Groß- und Kleinschreibung wird berücksichtigt) Beispiele: google.com , example.org
Hafen Der Portteil einer URI. Beispiele: 80 , 443
Pfad Der Pfadteil einer URI. Muss mit / beginnen Beispiele: / , /about
pathPrefix Ein Präfix für den Pfadteil eines URI. Beispiele: /item , /article
Pfadmuster Ein Muster für den Pfadteil eines URI. Beispiele: /item/.* , /article/[0-9]*
Mime Typ Ein übereinstimmender Mime-Typ. Beispiele: image/jpeg , audio/*

Bemerkungen

Der <intent-filter>

Diese Kombination der Elemente <action> und <category> teilt dem Android-System mit, dass eine bestimmte Aktivität gestartet werden soll, wenn der Benutzer auf einen Link in einer anderen Anwendung klickt.

<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>

Mehrere <data> -Tags

Der Satz von Deep Links, den Ihr <intent-filter> unterstützt, ist das Kreuzprodukt aller <data> -Elemente, die Sie in diesem Absichtsfilter definieren. Die Beispiele für mehrere Domänen, mehrere Pfade und mehrere Schemas zeigen dies.

Ressourcen

Einfache tiefe Verbindung

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>

Dadurch wird jeder Link, der mit http://www.example.com beginnt, als tiefer Link zum Starten Ihrer MainActivity .

Mehrere Pfade in einer einzigen Domäne

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>

Dies startet Ihre MainActivity wenn der Benutzer auf einen dieser Links klickt

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

Mehrere Domänen und mehrere Pfade

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>

Dies startet Ihre MainActivity, wenn der Benutzer auf einen der folgenden Links klickt:

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

Sowohl http als auch https für dieselbe Domäne

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>

Dies startet Ihre MainActivity, wenn der Benutzer auf einen der folgenden Links klickt:

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

Abfrageparameter abrufen

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");
        }
    }

}

Wenn der Benutzer auf eine Verknüpfung zu http://www.example.com/map?param1=FOO&param2=BAR klickt, hat param1 hier den Wert "FOO" und param2 den Wert "BAR" .

PathPrefix verwenden

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>

Dies startet Ihre MainActivity, wenn der Benutzer auf einen Link klickt, der mit http://www.example.com/item beginnt.

  • 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
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow