实现微信跳转方案猜想与解决方案

WechatIMG2.png

有人还记得,但是这段跳转的URL吗,一点直接从网页调到指定的界面了(不过现在已经被封了,不用再尝试了)

内部跳转其实很平常,只要给出指点的路径URL就能实现
但是我们分析下微信的URL:
第一部分是scheme:weixin
第二部分应该是一个判断是否进跳转方法的参数:dl
最后部分是要跳转的vc的名字
没有给一个完整的跳转路径是如何完成一步步的加载的,所以我有了一个实现的猜想虽然不一定和微信的完全一样

解决方案是在程序内部存放一张跳转的路由表

![Uploading Snip20170117_2_280003.png . . .]

通常一次一次查找,找到存放的路径


Snip20170117_2.png

存储的实体数据

Paste_Image.png

name:对外的查找名
class:controller的名字,之后可以通过NSClassFromString(name)方式创建实例
childs:这个类底下还能打开的子类

具体的实现

配合JLRoutes获取目标类名

    [[JLRoutes routesForScheme:@"weixin"] addRoute:@"/dl/:name" handler:^BOOL(NSDictionary<NSString *,id> * _Nonnull parameters) {
       //分析出目标类
        return NO;
    }];

打开H类

+ (NSString *)searchIndex:(NSString *)path withArr:(NSArray *)arr withTarget:(NSString *)name {
    for (int i = 0; i<arr.count; i++) {
        NSDictionary * data = arr[i];
        NSString * temp = [[path stringByAppendingString:@"/"] stringByAppendingString: [NSString stringWithFormat:@"%zd",i]];
        if ([[data objectForKey:@"name"] isEqualToString:name]) {
            return temp;
        }else if ([data objectForKey:@"childs"] && [[data objectForKey:@"childs"]count]>0) {
            NSString * path1 = [self searchIndex:temp withArr:[data objectForKey:@"childs"] withTarget:name];
            if (path1) {return path1;}
        }
    }
    return nil;
}

我们通过查找之后获得到的路径相当于/0/1/1数组第一个对象底下子类的第二个类底下的第二个类

根据表格创建
nav setViewControllers@[微信类,B类,H类]
之后修改TabBar selected
selectedViewController = 微信类

做了一个丑陋的Demo........不喜勿喷

Demo地址:https://github.com/CZXBigBrother/WeChatSchemeDemo

wechat.gif

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,990评论 19 139
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 16,480评论 4 61
  • 介绍 : JLRoutes是一个调用极少代码 , 可以很方便的处理不同URL schemes以及解析它们的参数,并...
    CoderLF阅读 1,711评论 0 3
  • 初次遇见,未来会用文字记录下这生活の点点滴滴、
    是洵洵阅读 206评论 0 1

友情链接更多精彩内容