zoukankan      html  css  js  c++  java
  • MGJRouter实践总结

    1.创建路由配置类 HZSSchemeConfig 继承自NSObject

    .h类示例

    /*设置
     * 无参数
     */
    UIKIT_EXTERN NSString *const kHZSSettingViewController;

    .m类示例

    NSString *const kHZSSettingViewController = @"HZS://native/HZSSettingViewController";

    2.在需要跳转的类中,将路由注册到路由表中

    + (void)load {
        [MGJRouter registerURLPattern:kHZSSettingViewController toHandler:^(NSDictionary *routerParameters) {
            HZSSettingViewController *vc = [[HZSSettingViewController alloc] init];
            [[UIViewController currentNavigationController] pushViewController:vc animated:YES];
        }];
    }

    3.A类跳转到设置页面 HZSSettingViewController ,并传值 name:zhangsan

    [MGJRouter openURL:kHZSSettingViewController withUserInfo:@{@"name":@"zhangsan"} completion:^(id result) {
    }];

    设置页面,registerURLPattern 方法里可以获取传进来的数据

    NSDictionary *userInfo = routerParameters[MGJRouterParameterUserInfo];

    4.设置页面 HZSSettingViewController 回传数据到A类,传字符串 1

    HZSSettingViewController 类

    @property (nonatomic, copy) void (^attentionBlock)(NSString *attentionStatus);

    设置页面,registerURLPattern 方法里设置回调

    vc.attentionBlock = routerParameters[MGJRouterParameterCompletion];

    在需要传值的地方

    if (self.attentionBlock) {
            self.attentionBlock(@"1");
        }

    A类 openURL 方法的 completion 回调中,可以接收到设置页面回传的值

    上面写了跳原生页面的逻辑,下面需要写全局统一的方法,判断跳原生、H5、小程序,后台根据客户端规则传 jumpType 、module 、detailId 即可

    /// 页面跳转
    /// @param jumpType 0 - 无;1 - 原生;2 - H5;3 - 微信小程序;
    /// @param module 原生跳转模块,或者是小程序的userName,H5的标题
    /// @param detailId 详情页id,或者是小程序的path,H5的地址
    + (void)jumpWithType:(NSString *)jumpType module:(NSString *)module detailId:(NSString *)detailId
    {
    }

     类比文字开头,需要注册以下标识

    /*
     *HZS://native  原生页面
     *HZS://h5          h5页面
     */
    #pragma mark 网页
    NSString *const kHZSHomeWebViewController = @"HZS://h5?detailId=http://";
    NSString *const kHZSHomeWebHttpsViewController = @"HZS://h5?detailId=https://";
    
    #pragma mark 小程序
    NSString *const kHZSMicroProgramePage = @"HZS://microProgramePage";
    在北京的灯中,有一盏是我家的。这个梦何时可以实现?哪怕微微亮。北京就像魔鬼训练营,有能力的留,没能力的走……
  • 相关阅读:
    网络世界中的图片以及相关的处理
    Ninject 2.x细说1.基本使用
    Orchard1.4新功能自动路由(AutoRouter)并附Orchard最新1.4版汉化包
    json的一点总结
    ASP.NET MVC路由扩展:路由映射
    厚积薄发,丰富的公用类库积累,助你高效进行系统开发(12) 网络相关操作辅助类
    IIS是如何处理ASP.NET请求的
    一周最新示例代码回顾 (3/19–3/25)
    .NET插件系统(三) 插件间通信问题——设计可自组织和注入的组装程序
    缓存总结
  • 原文地址:https://www.cnblogs.com/huangzs/p/14448207.html
Copyright © 2011-2022 走看看