最近在在寫一個實現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(@"參數不完整");
}
}
通過以上方法,我們已經有了實現路由跳轉的基本思路。
在下一篇,我會和大家分享具體如何實現路由跳轉以及實現路由跳轉的要求有哪一些,優勢有哪一些。
【iOS路由跳轉(一)之初識URL】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!