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

電子發燒友App

硬聲App

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
電子發燒友網>電子資料下載>電子資料>FFRouter強大易用的iOS路由庫

FFRouter強大易用的iOS路由庫

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

資料介紹

授權協議 MIT
開發語言 Objective-C
軟件類型 開源軟件
所屬分類 手機/移動開發

軟件簡介

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

功能

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

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

  • 支持 URL Rewrite

  • 支持 Rewrite 時獲取原 URL 參數或 URLComponents,并可對其進行URL Encode或 Decode

  • 支持通過 URL 獲取 Object

  • 支持 Route URL 時傳遞非常規對象

  • 支持 Route 一個未注冊的 URL 時統一回調

安裝

CocoaPods

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

運行?pod install

手動安裝

添加其中的?FFRouter?文件夾到自己項目

使用方法

首先

#import?"FFRouter.h"

1、基本使用

/**
?注冊?url

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

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

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



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

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



/**
?Route?一個?URL

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

/**
?Route?一個?URL,并帶上額外參數

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

/**
?Route?一個?URL,可獲得返回的?Object

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

/**
?Route?一個?URL,并帶上額外參數,可獲得返回的?Object

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



/**
?Route?一個未注冊?URL?時回調

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



/**
?取消注冊某個?URL

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

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


/**
?是否顯示?Log,用于調試

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

【備注】

(1)注冊 URL:

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

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

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

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

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

Route 一個 URL 并獲取返回值時,需要使用如下方法注冊 URL:

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

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

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

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

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

2、URL Rewrite

/**
?根據設置的?Rules?去?rewrite?一個?URL

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

/**
?添加一個?RewriteRule

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

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

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

/**
?移除一個?RewriteRule

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

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

【備注】

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

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

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

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

(2)可以通過以下方法同時增加多個規則:

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

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

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

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

  • 通過?$scheme$host$port$path$query$fragment?獲取標準 URL 中的相應部分。通過$url獲取完整 URL

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

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

例如:?https://www.taobao.com/search/原子彈對于Rewrite 規則(?: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 規則(?:https://)?www.taobao.com/search/(.*)

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

2、FFRouterNavigation

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

/**
?push?時是否自動隱藏底部TabBar

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



/**
?獲取當前?ViewController

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

/**
?獲取當前?NavigationViewController

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



/**
?Push?ViewController

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

/**
?Push?ViewController,可設置當前?ViewController?是否還保留

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

/**
?Push?多個?ViewController

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

/**
?present?ViewController

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



/**
?關閉當前?ViewController,push、present?方式通用

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

感謝

FFRouter實現方案參考了以下文章,在此表示感謝!

?

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

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數據手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅動電路設計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費
主站蜘蛛池模板: 欧美午夜精品一区二区三区| 欧美一区二区三区性| 免费的三级网站| 午夜视频一区| 一区在线播放| 狠狠色噜噜狠狠狠狠2021天天 | 男人免费看片| 李老汉的性生生活1全部| 欧美日韩色综合网站| 国产成人毛片毛片久久网| 精品乱人伦一区二区三区| 最近最新视频中文字幕4| 免费爱爱视频| 人人澡 人人澡 人人看| 高清一区二区三区四区五区| 看真人一级毛片| qyule亚洲精品| 六月丁香啪啪| 日本高清黄色| 欧美在线视频7777kkkk| 伊伊成人网| 国产成人精品日本亚洲直接| 201天天爱天天做| 三级视频网站在线观看播放| 午夜免费一级片| 国产亚洲一区二区三区在线| 精品国产一二三区在线影院 | 午夜性刺激免费视频观看不卡专区| 91av视频网站| 天天爱天天色| 午夜在线网站| 2级毛片| 久久综合免费视频| 99精品国产第一福利网站| 色婷婷精品| 免费观看一级一片| 五月婷婷六月婷婷| 天天做天天爽天天谢| 99热都是精品| 222.www免费观看| 狠狠色噜噜狠狠狠狠2021天天|