开源软件名称:GLRouter
开源软件地址:https://gitee.com/GL9700/GLRouter
开源软件介绍:
GLRouter
快速开始基本概念- Router支持,三种路由方式
push 页面跳转present 页面弹出invoke 方法调用
- 目标如果需要被展示(
push ,present ),则需要实现中的相应内容。 - 目标如果需要被调用(
invoke ),则调用的目标方法必须是类方法 。
使用(页面跳转)- 在跳转目标
TargetViewController 中引入接口<GLRouterProtocol> ,并实现相应的指定方法 - 使用如下代码
/** C函数,无需类名,直接调用* rto_dsp(NSString *str, BOOL (^handle)(id tgt))*/// 从当前页面跳转至TargetViewControllerrto_dsp(@"SCHEME://push/TargetViewController", nil);// 在当前页面弹出TargetViewControllerrto_dsp(@"SCHEME://present/TargetViewController", nil);
使用(方法调用)- 确认在目标Class存在该函数,例如
// <Tools.h>@interface Tools : NSObject@end// <Tools.m>@implementation Tools- (BOOL)sendMessage:(NSString *)msg from:(NSString *)from to:(NSString *)to { BOOL success = (msg!=nil && from!=nil && to!=nil); if(success){ NSLog(@"%@ 给 %@ 发送了消息: %@", from, to, msg); }else{ NSLog(@"发送失败"); } return success;}@end - 使用如下代码进行调用
/** C函数,无需类名,直接调用* rto_ivk(NSString *str, void (^handle)(id ret))*/// 无返回值rto_ivk(@"SCHEME://invoke/Tools/sendMessage:from:to:?p1=Hello World&p2=Tom&p3=Jerry", nil); // output “Tom 给 Jerry 发送了消息: Hello World”// 有返回值rto_ivk(@"SCHEME://invoke/Tools/sendMessage:from:to:?p1=Hello World&p2=Tom&p3=Jerry", ^(id ret){ // ret 为返回值 BOOL result = [ret BoolValue];}); // output “Tom 给 Jerry 发送了消息: Hello World”
RouterURL的构成安装GLRouter is available through CocoaPods. To installit, simply add the following line to your Podfile: 题外目前市面上外部跳转入进app的方案,方式大致分为两种: - schema (iOS all)
例如:weixin://dl/scan优势:调用简单劣势:部分浏览器无法跳入,例如微信中的网页浏览;无法通过JS判断app是否启动 - Universal Link (iOS9+)
History- 2.1.0
- 增加了便捷初始化方案: rto_init_tab( scheme, routingTableName, routingTableBundle )
AuthorLiGuoliang [email protected] LicenseGLRouter is available under the MIT license. See the LICENSE file for more info. |
请发表评论