iOS路由跳转(一)之初识URL
2017-03-10 19:42
218 查看
最近在在写一个实现URL跳转的库,为了方便交流学习,特意分享给大家,这篇文章先给大家分享一下URL的基础知识。
由于URL使用范围非常的广泛,而且无论,iOS,Android,H5都有相关的解析方法,不用重新写相关的解析方法,可以减少大家的工作量,具有普遍适用性。
URL组成:
protocol :// hostname[:port] / path / [;parameters][?query]#fragment
协议://主机名[:端口]/ 路径/[:参数] [?查询]#Fragment
我们protocol起一个名字,我们这里暂且叫做
我们的hostname 叫做
port: 10001
路径:可以是跳转到模块的指定页面
参数:? 后面的就是参数,我们可以简单写一个解析的代码转换为NSDictionary对象
我这里简单拼接了一个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(@"参数不完整"); } }
通过以上方法,我们已经有了实现路由跳转的基本思路。
在下一篇,我会和大家分享具体如何实现路由跳转以及实现路由跳转的要求有哪一些,优势有哪一些。
相关文章推荐
- iOS跳转设置界面的多个url
- angular ui-router 路由默认跳转语句$urlRouterProvider.otherwise(‘路径');与<a>共用时存在的问题
- 学校学习ios教程笔记,第十节初识ios中的导航栏控制器页面跳转(UINavigationController)和模态
- iOS 7 新版微信 URL 不支持跳转 App Store 的解决方案
- Drogon——利用 method swizzling 解决 iOS APP 限制 URL 跳转的问题
- iOS使用自定义URL实现控制器之间的跳转
- ios与js交互,获取webview完整url,title,获取元素并赋值跳转
- iOS路由跳转(三)之JKRouter基础教程2
- iOS开发之如何通过路由方式进行页面间的跳转
- ios与js交互,获取webview完整url,title,获取元素并赋值跳转
- ios 上 IM 页面路由跳转白屏
- 如何使用 asp.net 4.0 新特性 路由功能 有助于seo优化 给一个 asp.net web项目(网站项目) 增加路由功能 ,继承,给根据路由生成的url的结尾,增加一个有利于seo优化的斜杠 /,跳转到一个路由生成的url页面
- iOS开发--iOS使用自定义URL实现控制器之间的跳转(DCURLRouter组件)
- iOS 7 新版微信 URL 不支持跳转 App Store 的解决方案
- iOS UIWebView处理url的打开、跳转、返回、关闭