我想通过以下方案添加对URI深度链接的支持:
xrb:xrb_3wm37qz19zhei7nzscjcopbrbnnachs4p1gnwo5oroi3qonw6inwgoeuufdp?amount=10000
amount
参数是可选的,第二部分是必需的地址。因此,模式本质上是xrb:
,第一部分xrb_3wm37qz19zhei7nzscjcopbrbnnachs4p1gnwo5oroi3qonw6inwgoeuufdp
是任何字符串,amount
是可选参数。
查看这里的Android文档,我不清楚的是如何从我的活动中检索数据,特别是对于没有作为参数(xrb_3wm37qz19zhei7nzscjcopbrbnnachs4p1gnwo5oroi3qonw6inwgoeuufdp
(的部分
URI是其他应用程序和服务使用的标准,所以我不想更改它或做任何专有的事情,但有可能与这种格式的URI建立深度链接吗?
基本上,我所要寻找的是,当单击包含URI的链接时,应用程序将打开并根据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>
并在活动的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");
}