Android 深度 Link 具有不包含路径但仅包含数据的 URI
Android Deep Link with a URI that contains no paths but data-only
我想使用以下方案添加对深度 link URI 的支持:
xrb:xrb_3wm37qz19zhei7nzscjcopbrbnnachs4p1gnwo5oroi3qonw6inwgoeuufdp?amount=10000
amount
参数可选,第二部分为必填地址。所以基本上模式是 xrb:
第一部分 xrb_3wm37qz19zhei7nzscjcopbrbnnachs4p1gnwo5oroi3qonw6inwgoeuufdp
是任何字符串并且 amount
是一个可选参数。
查看 Android 文档 here,我不清楚的是如何从我的 activity 中检索数据,特别是对于未出现的部分作为参数 (xrb_3wm37qz19zhei7nzscjcopbrbnnachs4p1gnwo5oroi3qonw6inwgoeuufdp
)
URI 是其他应用程序和服务使用的标准,因此我宁愿不更改它或做任何专有的事情,但是是否可以使用这种格式的 URI 进行深度 link?
基本上我所寻找的只是当单击包含 URI 的 link 时,应用程序将打开并根据 URI 为他们预加载一些数据。
谢谢!
通过在 AndroidManifest
中创建一个 intent-filter
来完成
<!-- 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>
并在 activity 的 onCreate
中检索 URI
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");
}
我想使用以下方案添加对深度 link URI 的支持:
xrb:xrb_3wm37qz19zhei7nzscjcopbrbnnachs4p1gnwo5oroi3qonw6inwgoeuufdp?amount=10000
amount
参数可选,第二部分为必填地址。所以基本上模式是 xrb:
第一部分 xrb_3wm37qz19zhei7nzscjcopbrbnnachs4p1gnwo5oroi3qonw6inwgoeuufdp
是任何字符串并且 amount
是一个可选参数。
查看 Android 文档 here,我不清楚的是如何从我的 activity 中检索数据,特别是对于未出现的部分作为参数 (xrb_3wm37qz19zhei7nzscjcopbrbnnachs4p1gnwo5oroi3qonw6inwgoeuufdp
)
URI 是其他应用程序和服务使用的标准,因此我宁愿不更改它或做任何专有的事情,但是是否可以使用这种格式的 URI 进行深度 link?
基本上我所寻找的只是当单击包含 URI 的 link 时,应用程序将打开并根据 URI 为他们预加载一些数据。
谢谢!
通过在 AndroidManifest
中创建一个intent-filter
来完成
<!-- 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>
并在 activity 的 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");
}