Skip to content

Commit f677650

Browse files
author
ccharlesren
committed
删除Router开源库依赖,转为Linkkit源代码
Change-Id: I97b38050ba2e686d5faff6cb251ea8e3ea51bdca
1 parent 25bb692 commit f677650

File tree

6 files changed

+440
-12
lines changed

6 files changed

+440
-12
lines changed

Podfile

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ target 'LinkApp' do
2525
pod 'FDFullscreenPopGesture', '1.1'
2626
pod 'SocketRocket', '0.5.1'
2727
pod 'TZImagePickerController', '3.2.1'
28-
pod 'MGJRouter', '0.10.0'
2928
pod 'TrueTime','5.0.3'
3029
pod 'KeychainAccess', '4.2.0'
3130
pod 'Tencent-MapSDK', '4.3.9'

Podfile.lock

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,6 @@ PODS:
105105
- lottie-ios (3.1.8)
106106
- Masonry (1.1.0)
107107
- MBProgressHUD (1.1.0)
108-
- MGJRouter (0.10.0)
109108
- MJRefresh (3.2.0)
110109
- nanopb (1.30906.0):
111110
- nanopb/decode (= 1.30906.0)
@@ -158,7 +157,6 @@ DEPENDENCIES:
158157
- lottie-ios (= 3.1.8)
159158
- Masonry (= 1.1.0)
160159
- MBProgressHUD (= 1.1.0)
161-
- MGJRouter (= 0.10.0)
162160
- MJRefresh (= 3.2.0)
163161
- QCloudCOSXML/Transfer (= 5.5.2)
164162
- SDWebImage (= 4.4.2)
@@ -198,7 +196,6 @@ SPEC REPOS:
198196
- lottie-ios
199197
- Masonry
200198
- MBProgressHUD
201-
- MGJRouter
202199
- MJRefresh
203200
- nanopb
204201
- PromisesObjC
@@ -247,7 +244,6 @@ SPEC CHECKSUMS:
247244
lottie-ios: 48fac6be217c76937e36e340e2d09cf7b10b7f5f
248245
Masonry: 678fab65091a9290e40e2832a55e7ab731aad201
249246
MBProgressHUD: e7baa36a220447d8aeb12769bf0585582f3866d9
250-
MGJRouter: 15d94541eb2cc81eff7d577337288feb7ae9575f
251247
MJRefresh: ed450d6eb9d3346a2cb033ab7eb6de090aeef437
252248
nanopb: 59317e09cf1f1a0af72f12af412d54edf52603fc
253249
PromisesObjC: 3113f7f76903778cf4a0586bd1ab89329a0b7b97
@@ -269,6 +265,6 @@ SPEC CHECKSUMS:
269265
TZImagePickerController: bf4c57b98d8707fce41ea6be872414a71c7a8c9d
270266
YYModel: 2a7fdd96aaa4b86a824e26d0c517de8928c04b30
271267

272-
PODFILE CHECKSUM: 22d1db148d4b734720cd7a7a6c6c13652fcd48cb
268+
PODFILE CHECKSUM: 4967f01a4f5644a05fec06802d96dfa8564dc2f0
273269

274270
COCOAPODS: 1.9.3

Source/LinkApp/Classes/Module/Home/Controller/TIoTHomeViewController.m

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525

2626
#import "UIView+Extension.h"
2727
#import "TIoTWebVC.h"
28-
#import "MGJRouter.h"
28+
#import "TIoTRouter.h"
2929

3030
#import "Firebase.h"
3131
#import "TIoTTRTCUIManage.h"
@@ -725,12 +725,12 @@ - (void)chooseFamilyDetail {
725725
}
726726
}
727727

728-
/// 通过MGJRouter 注册帮助反馈控制器,以便点击通知后跳转
728+
/// 通过TIoTRouter 注册帮助反馈控制器,以便点击通知后跳转
729729
- (void)registFeedBackRouterController {
730730

731-
[MGJRouter registerURLPattern:@"TIoT://TPNSPushManage/feedback" toHandler:^(NSDictionary *routerParameters) {
731+
[TIoTRouter registerURLPattern:@"TIoT://TPNSPushManage/feedback" toHandler:^(NSDictionary *routerParameters) {
732732
//传入推送的全部信息,在控制器内部取出URL,进行展示
733-
NSString *url = routerParameters[MGJRouterParameterUserInfo][@"customMessageContent"][@"url"]?:@"";
733+
NSString *url = routerParameters[TIoTRouterParameterUserInfo][@"customMessageContent"][@"url"]?:@"";
734734
if (url.length) {
735735
TIoTWebVC *vc = [[TIoTWebVC alloc] init];
736736
vc.title = NSLocalizedString(@"feedbak_detail", @"反馈详情");

Source/LinkApp/Classes/Universal/信鸽推送/XGPushManage.m

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
#import <UserNotifications/UserNotifications.h>
99
#import "XGPush.h"
1010
#import "XGPushPrivate.h" /// 如果是海外集群需要导入此头文件
11-
#import "MGJRouter.h"
11+
#import "TIoTRouter.h"
1212
#import "TIoTFeedBackViewController.h"
1313
#import "TIoTAppConfig.h"
1414
#import "TIOTTRTCModel.h"
@@ -94,7 +94,7 @@ - (void)xgPushUserNotificationCenter:(UNUserNotificationCenter *)center didRecei
9494

9595
DDLogDebug(@"-normal xgPush responseNOtification_requestContent_info==%@--\n custom-%@", response.notification.request.content.userInfo, response.notification.request.content.userInfo[@"custom"]);
9696

97-
[MGJRouter openURL:@"TIoT://TPNSPushManage/feedback" withUserInfo:@{@"customMessageContent":[NSString jsonToObject:response.notification.request.content.userInfo[@"custom"]]} completion:nil];
97+
[TIoTRouter openURL:@"TIoT://TPNSPushManage/feedback" withUserInfo:@{@"customMessageContent":[NSString jsonToObject:response.notification.request.content.userInfo[@"custom"]]} completion:nil];
9898

9999
completionHandler();
100100
}
Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
1+
//
2+
// TIoTRouter.h
3+
// TIoTLinkKit
4+
//
5+
//
6+
7+
#import <Foundation/Foundation.h>
8+
9+
NS_ASSUME_NONNULL_BEGIN
10+
11+
extern NSString *const TIoTRouterParameterURL;
12+
extern NSString *const TIoTRouterParameterCompletion;
13+
extern NSString *const TIoTRouterParameterUserInfo;
14+
15+
/**
16+
* routerParameters 里内置的几个参数会用到上面定义的 string
17+
*/
18+
typedef void (^TIoTRouterHandler)(NSDictionary *routerParameters);
19+
20+
/**
21+
* 需要返回一个 object,配合 objectForURL: 使用
22+
*/
23+
typedef id _Nullable (^TIoTRouterObjectHandler)(NSDictionary *routerParameters);
24+
25+
@interface TIoTRouter : NSObject
26+
27+
/**
28+
* 注册 URLPattern 对应的 Handler,在 handler 中可以初始化 VC,然后对 VC 做各种操作
29+
*
30+
* @param URLPattern 带上 scheme,如 TIoT://beauty/:id
31+
* @param handler 该 block 会传一个字典,包含了注册的 URL 中对应的变量。
32+
* 假如注册的 URL 为 TIoT://beauty/:id 那么,就会传一个 @{@"id": 4} 这样的字典过来
33+
*/
34+
+ (void)registerURLPattern:(NSString *)URLPattern toHandler:(TIoTRouterHandler)handler;
35+
36+
/**
37+
* 注册 URLPattern 对应的 ObjectHandler,需要返回一个 object 给调用方
38+
*
39+
* @param URLPattern 带上 scheme,如 TIoT://beauty/:id
40+
* @param handler 该 block 会传一个字典,包含了注册的 URL 中对应的变量。
41+
* 假如注册的 URL 为 TIoT://beauty/:id 那么,就会传一个 @{@"id": 4} 这样的字典过来
42+
* 自带的 key 为 @"url" 和 @"completion" (如果有的话)
43+
*/
44+
+ (void)registerURLPattern:(NSString *)URLPattern toObjectHandler:(TIoTRouterObjectHandler)handler;
45+
46+
/**
47+
* 取消注册某个 URL Pattern
48+
*
49+
* @param URLPattern URLPattern
50+
*/
51+
+ (void)deregisterURLPattern:(NSString *)URLPattern;
52+
53+
/**
54+
* 打开此 URL
55+
* 会在已注册的 URL -> Handler 中寻找,如果找到,则执行 Handler
56+
*
57+
* @param URL 带 Scheme,如 TIoT://beauty/3
58+
*/
59+
+ (void)openURL:(NSString *)URL;
60+
61+
/**
62+
* 打开此 URL,同时当操作完成时,执行额外的代码
63+
*
64+
* @param URL 带 Scheme 的 URL,如 TIoT://beauty/4
65+
* @param completion URL 处理完成后的 callback,完成的判定跟具体的业务相关
66+
*/
67+
+ (void)openURL:(NSString *)URL completion:(void (^)(id result))completion;
68+
69+
/**
70+
* 打开此 URL,带上附加信息,同时当操作完成时,执行额外的代码
71+
*
72+
* @param URL 带 Scheme 的 URL,如 TIoT://beauty/4
73+
* @param userInfo 附加参数
74+
* @param completion URL 处理完成后的 callback,完成的判定跟具体的业务相关
75+
*/
76+
+ (void)openURL:(NSString *)URL withUserInfo:(NSDictionary *)userInfo completion:(void (^)(id result))completion;
77+
78+
/**
79+
* 查找谁对某个 URL 感兴趣,如果有的话,返回一个 object
80+
*
81+
* @param URL 带 Scheme,如 TIoT://beauty/3
82+
*/
83+
+ (id)objectForURL:(NSString *)URL;
84+
85+
/**
86+
* 查找谁对某个 URL 感兴趣,如果有的话,返回一个 object
87+
*
88+
* @param URL 带 Scheme,如 TIoT://beauty/3
89+
* @param userInfo 附加参数
90+
*/
91+
+ (id)objectForURL:(NSString *)URL withUserInfo:(NSDictionary *)userInfo;
92+
93+
/**
94+
* 是否可以打开URL
95+
*
96+
* @param URL 带 Scheme,如 TIoT://beauty/3
97+
*
98+
* @return 返回BOOL值
99+
*/
100+
+ (BOOL)canOpenURL:(NSString *)URL;
101+
+ (BOOL)canOpenURL:(NSString *)URL matchExactly:(BOOL)exactly;
102+
103+
/**
104+
* 调用此方法来拼接 urlpattern 和 parameters
105+
*
106+
* #define TIoT_ROUTE_BEAUTY @"beauty/:id"
107+
* [TIoTRouter generateURLWithPattern:TIoT_ROUTE_BEAUTY, @[@13]];
108+
*
109+
*
110+
* @param pattern url pattern 比如 @"beauty/:id"
111+
* @param parameters 一个数组,数量要跟 pattern 里的变量一致
112+
*
113+
* @return 返回生成的URL String
114+
*/
115+
+ (NSString *)generateURLWithPattern:(NSString *)pattern parameters:(NSArray *)parameters;
116+
@end
117+
118+
NS_ASSUME_NONNULL_END

0 commit comments

Comments
 (0)