无法从Deep Link获取Uri数据

问题描述 投票:3回答:1

我想从浏览器重定向到我的应用程序,所以我在Manifest中使用以下代码进行活动:

<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="fivos"
                android:host="book"
                />
        </intent-filter>

//接受以“fivos:// book”开头的URI

浏览器发送的Uri中也有一些参数(例如fivos:// book?username = george)。在我被重定向到的Activity中,我使用以下代码来获取Uri,但是Uridata对象中似乎不存在参数,除了方案和主机

Uri URIdata = getIntent().getData();        
if(URIdata != null){
        String scheme = URIdata.getScheme();
        String host = URIdata.getHost();
        List params = URIdata.getPathSegments();
        String username = params.get(0).toString();
    }

我在清单中遗漏了什么吗?

android parameters uri intentfilter deep-linking
1个回答
4
投票

我使用以下代码来获取Uri但是Uridata对象中似乎没有参数,除了sheme和主机

在URL或?中的Uri之后的东西是查询参数,您可以通过Uri方法从like getQuery()检索。

© www.soinside.com 2019 - 2024. All rights reserved.