在Browsable活动中查找意图发件人的URL
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Browsable活动中查找意图发件人的URL相关的知识,希望对你有一定的参考价值。
我在我的一个活动intent-filter中处理了一个特定的URL方案。我的用户可以将他们的URL放在互联网上的任何网页上,而在浏览器中浏览他们的其他用户可以点击它们,我的应用就开始工作了。这工作完美。
现在我的问题是我想在我的活动中找到该用户来自的URL。
例如,用户将他的链接放在一个名为A.com
的网站上,另一个正在浏览A.com
的用户点击此链接,以便它来到我的应用程序。如何在我的活动中获得A.com
地址?可能吗?
场景更多信息: 例如,我在一个我的活动意图中处理这种链接 - 过滤数据:hisapp:// host / path用户将其放在web中,例如一个网站:example.com,另一个用户点击它并来到我的网站应用程序。我想从意图中得到example.com。
我想从浏览器获取用户来自我的应用程序的URL
我对此的解释是:
- 你有一个网页(例如,
https://hamidreza.com/somepage
) - 在该网页上,您有一个自定义方案的链接(例如,
hamidreza://something
) - 在某些设备上,您有一个带有
<activity>
的应用程序,其中包含<intent-filter>
,该广告支持该自定义方案 - 当用户从他们设备上的浏览器访问该网页时,他们点击该链接开始您的活动......您希望能够发现这一切都始于
https://hamidreza.com/somepage
欢迎您查看发送到您活动的Intent
上的附加内容(通过getIntent()
),并查看引用URL是否在某处。也许对于少数浏览器来说,它是。我希望对于大多数浏览器而言,它不是。对于那些,您无法知道包含启动您的活动的URL的URL。
正如Selvin在评论中指出的那样,欢迎您在自定义网址中嵌入这类信息(例如,hamidreza://something?referer=https://hamidreza.com/somepage
)。然后,您可以从传递给您的活动的Uri
上的查询参数中获取该信息。
现在我的问题是我想在我的活动中找到该用户来自的URL。
Url将作为意图中的数据传递给您的活动。使用getQueryParameter
从Uri获取参数,或者您可以从段中获取参数。
在onCreate
if (getIntent().getData() != null) {
Uri uri = getIntent().getData();// this is the url
List<String> segments = uri.getPathSegments();// this is the url segments
}
在onNewIntent中
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
if (intent.getData() != null) {
Uri uri = intent.getData();
List<String> segments = uri.getPathSegments();
}
}
以上是关于在Browsable活动中查找意图发件人的URL的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Android 12 的意图中包含电子邮件收件人信息?
使用 Action.SEND 从另一个应用程序接收到隐式意图时显示错误的活动