Sök…


Introduktion

Djupa länkar är webbadresser som tar användare direkt till specifikt innehåll i din app. Du kan ställa in djupa länkar genom att lägga till avsiktsfilter och extrahera data från inkommande avsikter för att driva användare till höger skärm i din app.

parametrar

<data> Attribut detaljer
schema Schemadelen av en URI (skiftlägeskänslig). Exempel: http , https , ftp
värd Värddelen av en URI (skiftlägeskänslig). Exempel: google.com , example.org
hamn Hamndelen av en URI. Exempel: 80 , 443
väg Vägdelen av en URI. Måste börja med / . Exempel: / , /about
pathPrefix Ett prefix för vägdelen av en URI. Exempel: /item , /article
pathPattern Ett mönster för att matcha för vägdelen av en URI. Exempel: /item/.* , /article/[0-9]*
mimeType En mimetyp att matcha. Exempel: image/jpeg , audio/*

Anmärkningar

<intent-filter>

Denna kombination av <action> och <category> -element är det som säger Android-systemet att en specifik aktivitet bör startas när användaren klickar på en länk i en annan applikation.

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

Flera <data> -taggar

Uppsättningen av djupa länkar som din <intent-filter> stöder är korsprodukten av alla <data> -element som du definierar i det avsiktsfiltret. Exempel på flera domäner, flera sökvägar och flera schema visar detta.

Resurser

Enkel djup länk

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>

Detta accepterar alla länkar som börjar med http://www.example.com som en djuplänk för att starta din MainActivity .

Flera sökvägar på en enda domän

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>

Detta startar din MainActivity när användaren klickar på någon av dessa länkar:

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

Flera domäner och flera sökvägar

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>

Detta startar din MainActivity när användaren klickar på någon av dessa länkar:

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

Både http och https för samma domän

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>

Detta startar din MainActivity när användaren klickar på någon av dessa länkar:

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

Hämtar frågeparametrar

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

}

Om användaren klickar på en linkto http://www.example.com/map?param1=FOO&param2=BAR , kommer param1 här att ha ett värde på "FOO" och param2 har ett värde på "BAR" .

Med hjälp av pathPrefix

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>

Detta kommer att starta din MainActivity när användaren klickar på en länk som börjar med http://www.example.com/item , till exempel:

  • 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
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow