Latest 0.0.1
Homepage https://github.com/seabrea/SeaRouter
License MIT
Platforms ios 9.0, requires ARC
Authors

LOGO

SeaRouter
SeaRouter
SeaRouter
CocoaPods compatible

SeaRouter是一个简洁的 iOS Router。

Demo

Demo项目

Installation

支持Cocoapods:

pod 'SeaRouter'

Usage

具体使用可参考Demo项目

SeaRouter主要用于iOS中页面跳转,用于对高耦合的控制器之间的解耦。

首先在需要响应的控制器中注册

/**
 * AViewController.m
 */
+ (void)load {
    [SeaRouter registerURL:@"app://A" toHandler:^(NSDictionary * _Nonnull info) {

        AViewController *vc = [[AViewController alloc] init];
        [[SeaRouter keyViewController].navigationController pushViewController:vc animated:YES];
    }];
}

之后在其他控制器中可以直接使用URL跳转对应的控制器

/**
 * 路由跳转
 *
 * @param  url    访问路径
 * @param  params 传递给跳转对象的数据
 */
[SeaRouter openURL:@"app://B" withParams:@{@"code":@"123"}];

在不需要传值的时候也可以直接用

+ (void)openURL:(NSString *)url;

也可以直接使用SeaRouter打开一个 Web URL

[SeaRouter openURL:@"https://m.weibo.cn"];

如果你没有先注册好显示用的自定义WebController,那么SeaRouter会自定打开一个默认的控制器用于显示Web内容。

如果你需要自定义一个Web控制器,请使用SeaRouter提供的SEAROUTER_CUSTOM_WEB_VC作为注册URL

[SeaRouter registerURL:SEAROUTER_CUSTOM_WEB_VC toHandler:^(NSDictionary *info) {

        WebViewController *webvc = [[WebViewController alloc] init];
        webvc.url = info[SEAROUTER_URL];
        [[SeaRouter keyViewController].navigationController pushViewController:webvc animated:YES];
    }];

其中SEAROUTER_URL也是SeaRouter提供的字符串,作为info的Key值.

SeaRouter提供打开Web的原因是:方便线上紧急处理有bug的相关页面,可以定制一张包含所有APP内跳转URL信息的表,由服务器提供,当线上APP某个模块出现致命bug的时候,可以让服务端修改这个表,将对应的URL改为一个暂时替用的WebURL,这样用户打开APP的时候,进入相关模块将不会跳转入有bug的页面,而是直接打开一个没有bug的web的页面。

Author

SeaBrea

有什么问题或者好的建议可以联系我 [email protected]

License

SeaNativeHUD is available under the MIT license. See the LICENSE file for more info.

Latest podspec

{
    "name": "SeaRouter",
    "version": "0.0.1",
    "summary": "A easy function for iOS URL Router.",
    "description": "u4e00u4e2au7075u6d3bu7b80u5355u7684 iOS URL Router, u4e3bu8981u7528u4e8eiOSu4e2du9875u9762u8df3u8f6cuff0cu7528u4e8eu5bf9u9ad8u8026u5408u7684u63a7u5236u5668u4e4bu95f4u7684u89e3u8026u3002",
    "homepage": "https://github.com/seabrea/SeaRouter",
    "license": {
        "type": "MIT",
        "file": "LICENSE"
    },
    "authors": {
        "seabrea": "[email protected]"
    },
    "platforms": {
        "ios": "9.0"
    },
    "source": {
        "git": "https://github.com/seabrea/SeaRouter.git",
        "tag": "0.0.1"
    },
    "source_files": "SeaRouterDemo/SeaRouterDemo/SeaRouter/**/*.{h,m}",
    "requires_arc": true
}

Pin It on Pinterest

Share This