如何识别用户输入的是搜索文本还是网站?
How to identify whether user entered search text or a website?
因此,我正在构建一个浮动应用程序,允许用户浏览网页并允许他们收听来自 YouTube 等视频网站的音频,即使设备处于 locked/in 背景。
这里我有一段文字用户可以在其中输入网站或他们想要搜索的任何文本的框 即SomeSite.com, www.SomeSite.com, 一些要搜索的文本
我想知道有什么有效的方法可以做到这一点。目前我正在考虑通过计算文本中的 space 来区分这一点(如果有 1 个或多个 space 那么文本肯定不是 URL)。但这不适用于 1 个词的搜索查询。另一种方法是检查顶级域,如 .com、.in、.uk 等。这不太好,因为可能有数千个域,而且将来还会增加。
我只想要一个有效区分站点或网址
您可以使用 Patterns class 从 API 级别 8 开始可用。
if (Patterns.WEB_URL.matcher(myUrl).matches()) {
// Go to website
} else {
// Submit as search query
}
您可以使用
- isValidRul()
- Patterns.WEB_URL.matcher
- 检查是否 Uri.parse() returns 有效值
因此,我正在构建一个浮动应用程序,允许用户浏览网页并允许他们收听来自 YouTube 等视频网站的音频,即使设备处于 locked/in 背景。
这里我有一段文字用户可以在其中输入网站或他们想要搜索的任何文本的框 即SomeSite.com, www.SomeSite.com, 一些要搜索的文本
我想知道有什么有效的方法可以做到这一点。目前我正在考虑通过计算文本中的 space 来区分这一点(如果有 1 个或多个 space 那么文本肯定不是 URL)。但这不适用于 1 个词的搜索查询。另一种方法是检查顶级域,如 .com、.in、.uk 等。这不太好,因为可能有数千个域,而且将来还会增加。 我只想要一个有效区分站点或网址
您可以使用 Patterns class 从 API 级别 8 开始可用。
if (Patterns.WEB_URL.matcher(myUrl).matches()) {
// Go to website
} else {
// Submit as search query
}
您可以使用
- isValidRul()
- Patterns.WEB_URL.matcher
- 检查是否 Uri.parse() returns 有效值