-2

我正在为 iphone 制作一个网络浏览器,我想知道如何让网络浏览器http:// www在用户输入的任何 URL 之前自动添加。

4

1 回答 1

1

您没有向我们展示任何代码,甚至没有指定您的语言,所以我假设您要求的是您已经知道在哪里添加的正确算法:

如果你想添加http://www.到任何 URL,你当然可以,但这很难被推荐。例如,一个人会认为http://www.en.wikipedia.org没有用。我相信您可以找到一个确实中断的页面。http://www.https://bank.example.com肯定是无效的。

我推荐这个:

  1. 如果 URL 不是以指定的协议开头(“协议指定”的正则表达式:),则在^\w+\:\/\/前面添加http://
  2. 尝试 DNS 查找或访问 URL。
  3. 如果查找失败,并且 URL 尚未以 开头www.,则在前面添加www..
  4. 你可以在这里停下来。您已经尽可能地处理了前缀。
  5. 如果你添加了www.,做一个新的查找
  6. 如果查找仍然失败,请尝试将流行的顶级域 ( .com, .net, .org, ...) 附加到 URL 中,无论是否带有www..

你甚至可以观察用户的习惯,找出用户最常访问的顶级域,并尝试先追加它们。

当然,如果你想要更好的东西,你可以。观察任何现代桌面浏览器中地址栏的行为:它基本上对曾经访问过的地址集执行全文搜索,按访问次数(和新鲜度?)加权。您甚至可以跟踪访问次数与访问它的字符串,而不是为不相关的输入提供 URL。Chrome 确实跟踪输入与 URL => 命中计数(建议成功的频率)和未命中计数(建议不成功的频率)。

最有可能的是,您需要为此制作自己的虚拟键盘,但这与编写渲染核心或 javascript 引擎(甚至是相当快的 CSS 引擎)相比只是少量工作。

于 2012-12-13T07:12:47.047 回答