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

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

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

URL组成:

protocol ://hostname[:port] / path /[?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(@"参数不完整");
            }
        }

通过以上方法,我们已经有了实现路由跳转的基本思路。
在下一篇,我会和大家分享具体如何实现路由跳转以及实现路由跳转的要求有哪一些,优势有哪一些。
QQ交流群:扫码入群
在这里插入图片描述
更多优质文章,可以微信扫码关注:
这里写图片描述

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值