Android Deep Link с URI, который не содержит путей, но только для данных - PullRequest
0 голосов
/ 15 декабря 2018

Я хочу добавить поддержку глубокой связи URI со следующей схемой:

xrb:xrb_3wm37qz19zhei7nzscjcopbrbnnachs4p1gnwo5oroi3qonw6inwgoeuufdp?amount=10000

Параметр amount является необязательным, вторая часть является обязательным адресом.Таким образом, по сути, схема xrb:, первая часть xrb_3wm37qz19zhei7nzscjcopbrbnnachs4p1gnwo5oroi3qonw6inwgoeuufdp - это любая строка, а amount - необязательный параметр.

Глядя на документацию по Android здесь , я не являюсьясно, как извлечь данные из моей деятельности, особенно для части, которая не входит в качестве параметра (xrb_3wm37qz19zhei7nzscjcopbrbnnachs4p1gnwo5oroi3qonw6inwgoeuufdp)

URI - это стандарт, который используют другие приложения и службы, поэтому я 'Я бы не хотел менять его или делать что-то частное, но возможно ли иметь глубокую ссылку с URI этого формата?

В основном все, что я ищу, - это когда я нажимаю на ссылку, содержащую URI, приложениеоткроет и предварительно загрузит некоторые данные для них на основе URI.

Спасибо!

1 Ответ

0 голосов
/ 17 декабря 2018

Выполняется путем создания intent-filter в AndroidManifest

<!-- xrb uri scheme -->
<intent-filter android:label="@string/app_name">
    <action android:name="android.intent.action.VIEW" />
    <action android:name="android.nfc.action.NDEF_DISCOVERED" />

    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />

    <data android:scheme="xrb" />
</intent-filter>

и извлечения URI в onCreate

Intent intent = getIntent();
String action = intent.getAction();
Uri data = intent.getData();
if (data != null) {
    Timber.d("inuri %s", data.toString());
} else {
    Timber.d("inuri null");
}
действия
...