一、組件之間的通訊 MKRouter
/* 註冊 */
[[MKRouter sharedInstance] registerHandler:^(MKRouteRequest *request) {
// 跳轉至商祥頁
// request.callBack(nil, @{@"productId" : request[@"productId"]});
} forRoute:MKString(@".*product/detail.*\\?(.*)\\&(.*)$")];
/* 調用 */
[[MKRouter sharedInstance] handleURL:[NSURL URLWithString:@"weixin://com.apple.iphone/product/detail?productId=ID985632"] params:nil targetCallBack:^(NSError *error, NSDictionary *responseObject) {
}];
數據埋點: "appData/click?params={eventId:0925D6A034A58F06}"
商詳跳轉: "product/detail?productId=id1314785643"
二、頁面跳轉(推送、scheme、JSAPI-openURL)MKPageRouter
通過url正則匹配到相關的路由配置,生成對應類型的VC容器,從而實現頁面跳轉(url鏈接必須實現URL編解碼)
native:通過plist配置,找到key對應VC容器的ClassName,或是在args中配置相關的映射規則
weex:獲取weex資源文件lx的下載鏈接,傳遞給weex容器實現資源加載和頁面渲染
flutter:配置相關的routeName,傳遞給FlutterViewController實現flutter端路由的切換
web:直接通過url,生成WebVC,實現頁面跳轉和H5資源加載