AppDelegate+Deeplink.m 4.31 KB
Newer Older
u  
lee committed
1 2 3 4 5 6 7 8 9 10
//
//  AppDelegate+Deeplink.m
//  iCemarose
//
//  Created by Sanchew on 2017/6/29.
//  Copyright © 2017年 kollway. All rights reserved.
//

#import "AppDelegate+Deeplink.h"
#import <JLRoutes/JLRoutes.h>
lee committed
11
#import "AppDelegate.h"
u  
lee committed
12
#import "KWMNewProductVC.h"
lee committed
13
#import "KWMSelectedGoodsVC.h"
lee committed
14
#import "KWMBlogDetailVC.h"
u  
lee committed
15
#import "KWMNewProductVC.h"
16
#import "KWMBrandCaramelVC.h"
u  
lee committed
17 18 19

@implementation AppDelegate (Deeplink)

20 21 22 23
- (UINavigationController *) navigationController {
    return [[AppDelegate mainViewController] selectedViewController];
}

u  
lee committed
24 25
- (void)registerRouter {
    JLRoutes *routes = [JLRoutes routesForScheme:@"cemarose"];
lee committed
26
    [routes addRoute:@"/collections/:handle/*" handler:^BOOL(NSDictionary<NSString *,id> * _Nonnull parameters) {
lee committed
27
        NSArray *tags = parameters[JLRouteWildcardComponentsKey];
28
        NSString *handle = parameters[@"handle"];
lee committed
29 30
        tags = tags.count > 0 ? [tags[0] componentsSeparatedByString:@"+"] : nil;
//        NSArray *tags = [parameters[JLRouteWildcardComponentsKey] componentsSeparatedByString:@"+"];
u  
lee committed
31
        NSLog(@"trace tags %@",[tags componentsJoinedByString:@","]);
32 33 34 35 36 37 38 39 40 41 42 43 44 45
        NSArray *brands = @[@"amelie-wang",@"babywalker",@"beau-loves",@"billieblush",@"billybandit",@"bonpoint",@"burberry",@"caramel",@"chloe",@"collegien",@"dolce-gabbana",@"emile-et-ida",@"fendi",@"gucci",@"hucklebones",@"il-gufo",@"indikidual",@"karl-lagerfeld-kids",@"kenzo",@"lanvin",@"little-marc-jacobs",@"loud-apparel",@"louis-louise",@"louise-misha",@"marie-chantal",@"marni",@"mini-melissa",@"mini-rodini",@"mischka-aoki",@"moncler",@"moschino",@"msgm",@"nailmatic",@"nana-huchy",@"noukies",@"oeuf",@"patachou",@"paul-smith",@"pepe",@"sons-daughters-eyewear",@"stella-mccartney-kids",@"story-loris",@"tartine-et-chocolat",@"the-animals-observatory",@"tiny-cottons",@"veja",@"young-versace",@"zadig-voltaire"];
        if ([brands containsObject:handle]) {
            KWMBrandCaramelVC *brandCaramelVC = [KWMBrandCaramelVC getNewInstance];
            brandCaramelVC.isSale = NO;
            brandCaramelVC.handle = handle;
            brandCaramelVC.brand = handle;
            [[self navigationController] pushViewController:brandCaramelVC animated:NO];
        }else{
            KWMSelectedGoodsVC * selectedGoodsVC = (KWMSelectedGoodsVC *)[KWMBaseVC findControllerBy:[KWMSelectedGoodsVC kwmTag] fromStoryboard:@"New"];
            selectedGoodsVC.handle = handle;
            selectedGoodsVC.ctags = tags;
            selectedGoodsVC.title = parameters[@"title"];
            [[AppDelegate mainViewController].selectedViewController pushViewController:selectedGoodsVC animated:NO];
        }
u  
lee committed
46 47 48 49
        return YES;
    }];
    [routes addRoute:@"/products/:id" handler:^BOOL(NSDictionary<NSString *,id> * _Nonnull parameters) {
        NSLog(@"product id %@",parameters[@"id"]);
u  
lee committed
50
        KWMNewProductVC *vc = [KWMNewProductVC getNewInstance];
u  
lee committed
51
//        KWMNewProductVC *productDetailVC = [KWMNewProductVC getNewInstance];
lee committed
52
//        productDetailVC.product = brandCell.leftProduct;
lee committed
53
        vc.handle = parameters[@"id"];
u  
lee committed
54
//        NSLog(@"%@",[AppDelegate mainViewController].selectedViewController);
55
        [[AppDelegate mainViewController].selectedViewController pushViewController:vc animated:NO];
u  
lee committed
56 57
        return YES;
    }];
lee committed
58 59 60
    [routes addRoute:@"/blogs/:blog/:handle" handler:^BOOL(NSDictionary<NSString *,id> * _Nonnull parameters) {
        KWMBlogDetailVC *blogDetailVC = (KWMBlogDetailVC *)[KWMBlogDetailVC findControllerBy:@"KWMBlogDetailVC" fromStoryboard:@"Home"];
        blogDetailVC.handle = parameters[@"handle"];
u  
lee committed
61 62
        blogDetailVC.type = KWMContentTypeBlog;;
        blogDetailVC.title = parameters[@"title"];
63
        [[AppDelegate mainViewController].selectedViewController pushViewController:blogDetailVC animated:NO];
64 65 66 67 68 69
        return YES;
    }];
    [routes addRoute:@"/pages/:handle" handler:^BOOL(NSDictionary<NSString *,id> * _Nonnull parameters) {
        KWMBlogDetailVC *blogDetailVC = (KWMBlogDetailVC *)[KWMBlogDetailVC findControllerBy:@"KWMBlogDetailVC" fromStoryboard:@"Home"];
        blogDetailVC.handle = parameters[@"handle"];
        blogDetailVC.type = KWMContentTypePage;
u  
lee committed
70
        blogDetailVC.title = parameters[@"title"];
71
        [[AppDelegate mainViewController].selectedViewController pushViewController:blogDetailVC animated:NO];
lee committed
72 73
        return YES;
    }];
u  
lee committed
74 75 76 77 78 79 80
}

- (BOOL)handleURL:(NSURL *)url {
    return [JLRoutes routeURL:url];
}

@end