如何在深度链接中提供意图数据

dev*_*v90 2 performance android deep-linking android-layout android-fragments

我已经更新了清单文件以支持深度链接。我已经从运行(编辑配置)中检查了它,它打开了指定的活动。

现在,我需要使用深层链接发送一些数据。那么应该怎么做呢。我添加了另一个数据属性,但是我不明白如何以相同的键/值方式在活动中获取数据。

我在活动中得到这样的意图

   Intent intent = getIntent();
    String action = intent.getAction();
    Uri data = intent.getData();
Run Code Online (Sandbox Code Playgroud)

intent.getData()的值= myapp:// videodeeplink

我已经阅读了一些有关此的文章和教程,但是我却无法获得。请指导我如何放置和获取深层链接中的一些数据。

myapp:// videodeeplink

<activity
    android:name=".VideosListActivity"
    android:screenOrientation="portrait"
    android:theme="@style/AppTheme" >

    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.BROWSABLE" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:scheme="myapp" android:host="videodeeplink"/>
        <data android:scheme="videoURL" android:host="videoURL"/>
    </intent-filter>


</activity>
Run Code Online (Sandbox Code Playgroud)

Gau*_*tam 5

要发送数据,您应该在数据标签中添加pathRrefix参数,如下所示:

 <data
     android:host="@string/host"
     android:pathPrefix="path"
     android:scheme="@string/schema" />
Run Code Online (Sandbox Code Playgroud)

现在,当您要解析它时,可以使用以下使用意图的pathSegments。

mainIntent = getIntent();
if (mainIntent!=null && mainIntent.getData()!=null
    && (mainIntent.getData().getScheme().equals("http"))){
        Uri data = mainIntent.getData();
        List<String> pathSegments = data.getPathSegments();
        if(pathSegments.size()>0)
        String prefix=pathSegments.get(0); // This will give you prefix as path
}
Run Code Online (Sandbox Code Playgroud)