您的位置:首页 > 移动开发 > IOS开发

iOS路由跳转(一)之初识URL

2017-03-10 19:42 218 查看
   最近在在写一个实现URL跳转的库,为了方便交流学习,特意分享给大家,这篇文章先给大家分享一下URL的基础知识。

   由于URL使用范围非常的广泛,而且无论,iOS,Android,H5都有相关的解析方法,不用重新写相关的解析方法,可以减少大家的工作量,具有普遍适用性。

URL组成:

protocol :// hostname[:port] / path / [;parameters][?query]#fragment

协议://主机名[:端口]/ 路径/[:参数] [?查询]#Fragment

我们protocol起一个名字,我们这里暂且叫做
hzsp
zs  张三的首字母,嘿嘿


我们的hostname 叫做
zsapp
为了区分不同的app

port: 10001
我这里用端口号作为moduleID


路径:可以是跳转到模块的指定页面

参数:? 后面的就是参数,我们可以简单写一个解析的代码转换为NSDictionary对象

我这里简单拼接了一个URL如下:

hzsp://zsapp:10001/china/abc.com?a=1&b=2


如何解析服务器地址

//拼接后最终的URL
NSURL *targetURL = [NSURL URLWithString:url];
NSString *hostName = targetURL.host


如何解析端口号

NSNumber *moduleID = targetURL.port;


如何解析指定的路径

NSString *subPath = [targetURL path];


如何解析参数

NSString *parameterStr = [[targetURL query] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

NSMutableDictionary *dic = [NSMutableDictionary dictionary];
NSArray *parameterArr = [parameterStr componentsSeparatedByString:@"&"];
for (NSString *parameter in parameterArr) {
NSArray *parameterBoby = [parameter componentsSeparatedByString:@"="];
if (parameterBoby.count == 2) {
[dic setObject:parameterBoby[1] forKey:parameterBoby[0]];
}else
{
NSLog(@"参数不完整");
}
}


通过以上方法,我们已经有了实现路由跳转的基本思路。

在下一篇,我会和大家分享具体如何实现路由跳转以及实现路由跳转的要求有哪一些,优势有哪一些。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息