我正在为 iphone 制作一个网络浏览器,我想知道如何让网络浏览器http:// www
在用户输入的任何 URL 之前自动添加。
问问题
227 次
1 回答
1
您没有向我们展示任何代码,甚至没有指定您的语言,所以我假设您要求的是您已经知道在哪里添加的正确算法:
如果你想添加http://www.
到任何 URL,你当然可以,但这很难被推荐。例如,一个人会认为http://www.en.wikipedia.org
没有用。我相信您可以找到一个确实中断的页面。http://www.https://bank.example.com
肯定是无效的。
我推荐这个:
- 如果 URL 不是以指定的协议开头(“协议指定”的正则表达式:),则在
^\w+\:\/\/
前面添加http://
- 尝试 DNS 查找或访问 URL。
- 如果查找失败,并且 URL 尚未以 开头
www.
,则在前面添加www.
. - 你可以在这里停下来。您已经尽可能地处理了前缀。
- 如果你添加了
www.
,做一个新的查找 - 如果查找仍然失败,请尝试将流行的顶级域 (
.com
,.net
,.org
, ...) 附加到 URL 中,无论是否带有www.
.
你甚至可以观察用户的习惯,找出用户最常访问的顶级域,并尝试先追加它们。
当然,如果你想要更好的东西,你可以。观察任何现代桌面浏览器中地址栏的行为:它基本上对曾经访问过的地址集执行全文搜索,按访问次数(和新鲜度?)加权。您甚至可以跟踪访问次数与访问它的字符串,而不是为不相关的输入提供 URL。Chrome 确实跟踪输入与 URL => 命中计数(建议成功的频率)和未命中计数(建议不成功的频率)。
最有可能的是,您需要为此制作自己的虚拟键盘,但这与编写渲染核心或 javascript 引擎(甚至是相当快的 CSS 引擎)相比只是少量工作。
于 2012-12-13T07:12:47.047 回答