美文网首页
iOS打开URL方法的思考

iOS打开URL方法的思考

作者: 迷了jiang | 来源:发表于2019-03-19 17:10 被阅读0次

我们在打开一个URL或者跳转到另一个APP的时候会用到一个跳转Api

        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@""] options:@{} completionHandler:nil];

这个Api的第一个参数是URL或者App配好的url scheme,第二个参数是一个字典,这个是用来通信的参数,在Appdelegate的代理中可以获取到,第三个参数是一个block回调,用一个bool值来告诉结果。

当我们在另一个APP的时候,获取到请求的URL的请求参数,进行处理;例如app之间的跳转可以写成millertest://one 或者 millertest://two来区分不同的路由,options来获取请求参数,是不是和一个get或者post的请求很像啊,一个路由和一个请求参数组成。

- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary *)options {
// 通过url的host判断需要跳转的页面进行处理
    if ([url.host isEqualToString:@"one"]) {
    }
    if ([url.host isEqualToString:@"two"]) {
  
    }
    return YES;
}

这个方法本身很简单,没什么太多可以讨论的,但是苹果的封装思想可以来给我借鉴一下;最近的APP都在强调组件化,模块之间解耦独立起来,那么在它们建立通信的时候我们可以参考苹果设计思想了;首先要有一个注册中心类似于[UIApplication sharedApplication] ,把所有的组件抽象成路由注册进去,然后通信的时候传入字典参数,回调结果处理时采用类似的block。在平时封装类和优化代码时,可以多参考苹果的设计思想和代码框架。

相关文章

网友评论

      本文标题:iOS打开URL方法的思考

      本文链接:https://www.haomeiwen.com/subject/lkrnmqtx.html