在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>FFRouter強(qiáng)大易用的iOS路由庫

FFRouter強(qiáng)大易用的iOS路由庫

2022-06-24 | zip | 0.54 MB | 次下載 | 2積分

資料介紹

授權(quán)協(xié)議 MIT
開發(fā)語言 Objective-C
軟件類型 開源軟件
所屬分類 手機(jī)/移動開發(fā)

軟件簡介

FFRouter 是 iOS 中一個(gè)強(qiáng)大且易用的 URL 路由庫,支持 URL Rewrite,使 APP 在發(fā)布之后也可以動態(tài)修改相關(guān)路由邏輯。基于匹配查找 URL,效率高。集成和使用都非常簡單!

功能

  • 具備基本的 URL 注冊、Route、取消注冊、打印 Log 等

  • 支持使用通配符(*)注冊 URL

  • 支持 URL Rewrite

  • 支持 Rewrite 時(shí)獲取原 URL 參數(shù)或 URLComponents,并可對其進(jìn)行URL Encode或 Decode

  • 支持通過 URL 獲取 Object

  • 支持 Route URL 時(shí)傳遞非常規(guī)對象

  • 支持 Route 一個(gè)未注冊的 URL 時(shí)統(tǒng)一回調(diào)

安裝

CocoaPods

target?'MyApp'?do
??pod?'FFRouter'
end

運(yùn)行?pod install

手動安裝

添加其中的?FFRouter?文件夾到自己項(xiàng)目

使用方法

首先

#import?"FFRouter.h"

1、基本使用

/**
?注冊?url

?@param?routeURL?要注冊的?URL
?@param?handlerBlock?URL?被?Route?后的回調(diào)
?*/
+?(void)registerRouteURL:(NSString?*)routeURL?handler:(FFRouterHandler)handlerBlock;

/**
?注冊?URL,通過該方式注冊的?URL?被?Route?后可返回一個(gè)?Object

?@param?routeURL?要注冊的?URL
?@param?handlerBlock?URL?被?Route?后的回調(diào),可在回調(diào)中返回一個(gè)?Object
?*/
+?(void)registerObjectRouteURL:(NSString?*)routeURL?handler:(FFObjectRouterHandler)handlerBlock;



/**
?判斷?URL?是否可被?Route(是否已經(jīng)注冊)

?@param?URL?要判斷的?URL
?@return?是否可被?Route
?*/
+?(BOOL)canRouteURL:(NSString?*)URL;



/**
?Route?一個(gè)?URL

?@param?URL?要?Router?的?URL
?*/
+?(void)routeURL:(NSString?*)URL;

/**
?Route?一個(gè)?URL,并帶上額外參數(shù)

?@param?URL?要?Router?的?URL
?@param?parameters?額外參數(shù)
?*/
+?(void)routeURL:(NSString?*)URL?withParameters:(NSDictionary?*)parameters;

/**
?Route?一個(gè)?URL,可獲得返回的?Object

?@param?URL?要?Router?的?URL
?@return?返回的?Object
?*/
+?(id)routeObjectURL:(NSString?*)URL;

/**
?Route?一個(gè)?URL,并帶上額外參數(shù),可獲得返回的?Object

?@param?URL?要?Router?的?URL
?@param?parameters?額外參數(shù)
?@return?返回的?Object
?*/
+?(id)routeObjectURL:(NSString?*)URL?withParameters:(NSDictionary?*)parameters;



/**
?Route?一個(gè)未注冊?URL?時(shí)回調(diào)

?@param?handler?回調(diào)
?*/
+?(void)routeUnregisterURLHandler:(FFRouterUnregisterURLHandler)handler;



/**
?取消注冊某個(gè)?URL

?@param?URL?要被取消注冊的?URL
?*/
+?(void)unregisterRouteURL:(NSString?*)URL;

/**
?取消注冊所有?URL
?*/
+?(void)unregisterAllRoutes;


/**
?是否顯示?Log,用于調(diào)試

?@param?enable?YES?or?NO,默認(rèn)為?NO
?*/
+?(void)setLogEnabled:(BOOL)enable;

【備注】

(1)注冊 URL:

[FFRouter?registerRouteURL:@"protocol://page/routerDetails/:id"?handler:^(NSDictionary?*routerParameters)?{
???//Route的URL與本次注冊URL匹配時(shí)的回調(diào)??
}];

[FFRouter?registerRouteURL:@"wildcard://*"?handler:^(NSDictionary?*routerParameters)?{
???//Route的URL與本次注冊URL匹配時(shí)的回調(diào)??
}];

[FFRouter?registerRouteURL:@"protocol://page/routerObjectDetails"?handler:^(NSDictionary?*routerParameters)?{
???//Route的URL與本次注冊URL匹配時(shí)的回調(diào)??
}];

可通過routerParameters獲取 URL 中的參數(shù),routerParameters[FFRouterParameterURLKey]為完整的URL. (2)當(dāng)需要通過以下方法:

+?(id)routeObjectURL:(NSString?*)URL;

Route 一個(gè) URL 并獲取返回值時(shí),需要使用如下方法注冊 URL:

+?(void)registerObjectRouteURL:(NSString?*)routeURL?handler:(FFObjectRouterHandler)handlerBlock;

并在 handlerBlock 中返回需要返回的 Object,例如:

//注冊并返回必要的值
[FFRouter?registerObjectRouteURL:@"protocol://page/routerObjectDetails"?handler:^id(NSDictionary?*routerParameters)?{
????????NSString?*str?=?@“根據(jù)需要返回必要的Object”;
????????return?str;
????}];
????
//獲取返回的值
NSString?*ret?=?[FFRouter?routeObjectURL:@"protocol://page/routerObjectDetails"];

(3)如果需要傳遞非常規(guī)對象作為參數(shù),如UIImage等,可使用如下方式:

[FFRouter?routeURL:@"protocol://page/routerDetails?nickname=imlifengfeng"?withParameters:@{@"img":[UIImage?imageNamed:@"router_test_img"]}];

2、URL Rewrite

/**
?根據(jù)設(shè)置的?Rules?去?rewrite?一個(gè)?URL

?@param?url?將被?rewrite?的?URL
?@return?rewrite?后的?URL
?*/
+?(NSString?*)rewriteURL:(NSString?*)url;

/**
?添加一個(gè)?RewriteRule

?@param?matchRule?正則匹配規(guī)則
?@param?targetRule?轉(zhuǎn)換規(guī)則
?*/
+?(void)addRewriteMatchRule:(NSString?*)matchRule?targetRule:(NSString?*)targetRule;

/**
?同時(shí)添加多個(gè)?RewriteRule,格式必須為:@[@{@"matchRule":@"YourMatchRule",@"targetRule":@"YourTargetRule"},...]

?@param?rules?RewriteRules
?*/
+?(void)addRewriteRules:(NSArray?*)rules;

/**
?移除一個(gè)?RewriteRule

?@param?matchRule?將被移除的?matchRule
?*/
+?(void)removeRewriteMatchRule:(NSString?*)matchRule;

/**
?移除所有?RewriteRule
?*/
+?(void)removeAllRewriteRules;

【備注】

(1)可以使用正則添加一條 Rewrite 規(guī)則,例如: 要實(shí)現(xiàn)打開 URL:https://www.taobao.com/search/原子彈時(shí),將其攔截,改用本地已注冊的 URL:protocol://page/routerDetails?product=原子彈打開。 首先添加一條 Rewrite 規(guī)則:

[FFRouterRewrite?addRewriteMatchRule:@"(?:https://)?www.taobao.com/search/(.*)"?targetRule:@"protocol://page/routerDetails?product=$1"];

之后在打開URL:https://www.taobao.com/search/原子彈時(shí),將會 Rewrite 到URL:protocol://page/routerDetails?product=原子彈

[FFRouter?routeURL:@"https://www.taobao.com/search/原子彈"];

(2)可以通過以下方法同時(shí)增加多個(gè)規(guī)則:

+?(void)addRewriteRules:(NSArray?*)rules;

其中 rules 格式必須為以下格式:

@[@{@"matchRule":@"YourMatchRule1",@"targetRule":@"YourTargetRule1"},
??@{@"matchRule":@"YourMatchRule2",@"targetRule":@"YourTargetRule2"},
??@{@"matchRule":@"YourMatchRule3",@"targetRule":@"YourTargetRule3"},]

(3)Rewrite 規(guī)則中的保留字:

  • 通過?$scheme$host$port$path$query$fragment?獲取標(biāo)準(zhǔn) URL 中的相應(yīng)部分。通過$url獲取完整 URL

  • 通過?$1$2$3...獲取matchRule的正則中使用圓括號取出的參數(shù)

  • $:原變量的值、$$:原變量URL Encode后的值、$#:原變量URL Decode后的值

例如:?https://www.taobao.com/search/原子彈對于Rewrite 規(guī)則(?:https://)?www.taobao.com/search/(.*)

$1=原子彈
$$1=%e5%8e%9f%e5%ad%90%e5%bc%b9

同樣,https://www.taobao.com/search/%e5%8e%9f%e5%ad%90%e5%bc%b9對于Rewrite 規(guī)則(?:https://)?www.taobao.com/search/(.*)

$1=%e5%8e%9f%e5%ad%90%e5%bc%b9
$#1=原子彈

2、FFRouterNavigation

考慮到經(jīng)常用路由配置UIViewController之間的跳轉(zhuǎn),所以增加了額外的工具FFRouterNavigation來更方便地控制UIViewController之間的跳轉(zhuǎn)。具體使用方法如下:

/**
?push?時(shí)是否自動隱藏底部TabBar

?@param?hide?是否自動隱藏,默認(rèn)為?NO
?*/
+?(void)autoHidesBottomBarWhenPushed:(BOOL)hide;



/**
?獲取當(dāng)前?ViewController

?@return?當(dāng)前?ViewController
?*/
+?(UIViewController?*)currentViewController;

/**
?獲取當(dāng)前?NavigationViewController

?@return?return?當(dāng)前?NavigationViewController
?*/
+?(nullable?UINavigationController?*)currentNavigationViewController;



/**
?Push?ViewController

?@param?viewController?被?Push?的?ViewController
?@param?animated?是否使用動畫
?*/
+?(void)pushViewController:(UIViewController?*)viewController?animated:(BOOL)animated;

/**
?Push?ViewController,可設(shè)置當(dāng)前?ViewController?是否還保留

?@param?viewController?被?Push?的?ViewController
?@param?replace?當(dāng)前?ViewController?是否還保留
?@param?animated?是否使用動畫
?*/
+?(void)pushViewController:(UIViewController?*)viewController?replace:(BOOL)replace?animated:(BOOL)animated;

/**
?Push?多個(gè)?ViewController

?@param?viewControllers?ViewController?Array
?@param?animated?是否使用動畫
?*/
+?(void)pushViewControllerArray:(NSArray?*)viewControllers?animated:(BOOL)animated;

/**
?present?ViewController

?@param?viewController?被?present?的?ViewController
?@param?animated?是否使用動畫
?@param?completion?回調(diào)
?*/
+?(void)presentViewController:(UIViewController?*)viewController?animated:(BOOL)animated?completion:(void?(^?__nullable)(void))completion;



/**
?關(guān)閉當(dāng)前?ViewController,push、present?方式通用

?@param?animated?是否使用動畫
?*/
+?(void)closeViewControllerAnimated:(BOOL)animated;

感謝

FFRouter實(shí)現(xiàn)方案參考了以下文章,在此表示感謝!

?

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1AIWA J470維修手冊 (可直接打印)
  2. 3.16 MB   |  3次下載  |  10 積分
  3. 2數(shù)能NU501系列恒流芯片型號選型表
  4. 0.04 MB   |  2次下載  |  免費(fèi)
  5. 3Eurotherm TKS Temperature 用戶手冊
  6. 1.46 MB  |  2次下載  |  免費(fèi)
  7. 4多值電場型電壓選擇晶體管結(jié)構(gòu)
  8. 0.11 MB   |  1次下載  |  免費(fèi)
  9. 5MOSFET講解-01(可下載)
  10. 253.76 KB  |  1次下載  |  免費(fèi)
  11. 6MOSFET講解-02(可下載)
  12. 263.46 KB  |  1次下載  |  免費(fèi)
  13. 7MOSFET講解-03(可下載)
  14. 501.18 KB  |  1次下載  |  免費(fèi)
  15. 8藍(lán)牙無線遙控小車
  16. 10.49 MB   |  1次下載  |  2 積分

本月

  1. 1晶體三極管的電流放大作用詳細(xì)說明
  2. 0.77 MB   |  32次下載  |  2 積分
  3. 2Python從入門到精通背記手冊
  4. 18.77 MB   |  24次下載  |  1 積分
  5. 3雙極型三極管放大電路的三種基本組態(tài)的學(xué)習(xí)課件免費(fèi)下載
  6. 4.03 MB   |  23次下載  |  1 積分
  7. 4第十一屆 藍(lán)橋杯 單片機(jī)設(shè)計(jì)與開發(fā)項(xiàng)目 省賽 程序設(shè)計(jì)試題及源碼
  8. 90.88KB   |  23次下載  |  3 積分
  9. 5STM32F103C8T6開發(fā)板最小系統(tǒng)原理圖
  10. 0.78 MB   |  23次下載  |  免費(fèi)
  11. 6多級放大電路的學(xué)習(xí)課件免費(fèi)下載
  12. 1.81 MB   |  21次下載  |  2 積分
  13. 7九陽豆?jié){機(jī)高清原理圖
  14. 2.47 MB   |  15次下載  |  1 積分
  15. 81875功放原理圖
  16. 0.04 MB   |  11次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935127次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
  4. 1.48MB  |  420063次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233089次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費(fèi)下載
  8. 340992  |  191382次下載  |  10 積分
  9. 5十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
  10. 158M  |  183337次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81585次下載  |  10 積分
  13. 7Keil工具M(jìn)DK-Arm免費(fèi)下載
  14. 0.02 MB  |  73814次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65988次下載  |  10 積分
主站蜘蛛池模板: ww.久久| hs网站在线观看 | 日韩欧美高清一区 | 天天做天天玩天天爽天天 | 久草毛片 | 日本三级香港三级人妇网站 | 色视频免费看 | 一级毛片一级毛片一级毛片 | 视频一本大道香蕉久在线播放 | 伊人yinren6综合网色狠狠 | www.xxx国产| 亚洲高清一区二区三区四区 | 插白浆| 色网站视频 | 亚洲人成网站色7799在线播放 | 中国业余老太性视频 | 亚欧美综合 | 久久精品视频免费观看 | 91精品久久久久含羞草 | 色视频综合 | 中文字幕天天躁夜夜狠狠综合 | 圆胖肥女人性视频 | 综合色久七七综合七七蜜芽 | 最近国语剧情视频在线观看 | 欧美黄色片免费看 | 人人添人人澡人人澡人人人爽 | 黄网在线观看免费 | 在线观看你懂的视频 | 欧美成人三级伦在线观看 | 午夜剧j| 中文字幕不卡在线播放 | 国产成人免费无庶挡视频 | 午夜资源在线 | 日本大片免费观看视频 | 国模私拍在线 | 老熟女毛片 | 夜夜橹橹网站夜夜橹橹 | 在线免费视频 | 免费看国产精品久久久久 | 国产美女在线精品免费观看 | 欧美人与牲动交xxxx |