![](/img/trans.png)
[英]Intent-filter Browsable for and android Application, not Activity?
[英]Find URL of sender of intent in a Browsable activity
我在我的一个活动意图过滤器中处理特定的 URL 方案。 我的用户可以将他们的 URL 放在互联网上的任何网页中,其他在浏览器中浏览它们的用户可以点击它们,我的应用程序开始工作。 这工作完美。
现在我的问题是我想在我的活动中找出该用户来自的 URL。
例如,一个用户将他的链接放在一个名为A.com
的网站上,另一个正在浏览A.com
用户点击这个链接,所以它来到了我的应用程序。 如何在我的活动的意图中获取A.com
地址? 是否可以?
有关更多信息的场景:
例如,我在一个我的活动意图过滤数据中处理这种链接: hisapp://host/path 一个用户把它放在网络中,例如一个网站:example.com,另一个用户点击它并来到我的应用程序。 我想从意图中获取 example.com。
我想从浏览器获取用户从它到我的应用程序的 URL
我对此的解释是:
https://hamidreza.com/somepage
: https://hamidreza.com/somepage
)hamidreza://something
)<activity>
和<intent-filter>
的应用程序,用于宣传对该自定义方案的支持https://hamidreza.com/somepage
欢迎您检查传递给您的活动的Intent
的额外内容(通过getIntent()
),并查看引用 URL 是否在某处。 也许对于一些浏览器来说,确实如此。 我希望对于大多数浏览器来说,事实并非如此。 对于那些,您无法知道包含启动您的活动的 URL 的 URL。
正如 Selvin 在评论中指出的那样,欢迎您在自定义 URL 中嵌入此类信息(例如, hamidreza://something?referer=https://hamidreza.com/somepage
)。 然后,您可以从传递给您的活动的Uri
上的查询参数中获取该信息。
调用getReferrer()
返回包含启动 Intent 的包名称的引用 URI。 不能保证推荐人永远是已知的!
2019 年 11 月不同引荐应用提供的 URL 值示例:
developer.android.com 的重要警告:
如果在处理 onNewIntent(Intent) 时调用,getReferrer() 将返回将新意图提交给活动的引用者。 否则,它总是返回原始 Intent 的引用者。
有关更多信息,请参阅https://developer.android.com/reference/android/app/Activity.html#getReferrer()
现在我的问题是,我想在我的活动中找出此用户来自的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();
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.