从用户输入的网址中检测自定义网址方案

时间:2012-04-09 20:24:34

标签: ios uiwebview nsstring nsurl nsstringencoding

我正在尝试使用UIWebView构建简单Web浏览器的教程。 如果用户只是在没有任何方案的情况下输入地址,那么有一个功能可以将方案“http://”作为前缀加到网址上。对于Ex:google.com中的用户类型而不是http://google.com 这是使用NSURL的scheme属性实现的。 一切都很好,直到地址很简单。

如果地址是这样的:“test1.samplewebsite.com:81” NSURL方案将字符串“test1.samplewebsite.com”检测为方案而不是方案。

这在safari上工作正常,它检测不到任何方案并且及时为http。

添加前缀

在开始编写代码来检测方案之前,我想检查一下,有没有用于检测有效方案的系统API?

1 个答案:

答案 0 :(得分:0)

不幸的是,在您的示例中,test1.samplewebsite.com将是符合规范的方案(或者wikipedia said,因为我并不是一个规范读者。)

但您可以使用-[UIApplication canOpenURL:(NSURL *)]来确定设备是否可以打开给定方案,自定义或其他方式。这是link to UIApplication docs(我希望我可以直接链接到该方法)。