JKRouter完美实现微信小程序的跳转

更新时间:2018-10-30 18:11:16 点击次数:1941次
 随着小程序(快应用)的发展,目前微信,头条。阿里。美团。等知名大厂都在开发自己的小程序应用系统。随着发展,一个app能否通过路由机制实现与各大厂的小程序也会进行交互成为app技术好坏的验证标准。而且app路由化的脚步越来越快,希望大家抓紧完善起来哦。
我这篇文章主要基于JKRouter 下载地址:https://github.com/xindizhiyin2014/JKRouter 来实现路由跳转小程序的。当然了只要是机遇URL协议实现的路由机制,都可以参考这篇文章实现小程序的跳转。

小程序跳转需要的数据
通过一个app跳转到微信小程序需要哪些指定的数据呢,我这边整理了一下其实非常的简单。主要有两方面:

path:小程序页面的路径
userName:小程序的id

当然了我这里还额外增加了一个数据小程序的名字,用英文或者或者中文拼音都可以。方便开发的时候识别url。

小程序跳转的URL规则
如果各位对URL不太了解的话可以参考这篇文章《iOS路由跳转(一)之初识URL》
我这边按照url的命名规则命名了小程序跳转的一个url供大家作为一个参考

wx-small-program://monitianqi/a/b/c?userName=gh_5575c7091635

其中wx-small-program是这个url的协议名字;monitianqi是这个url中小程序的别名;a/b/c是小程序的页面路径;gh_5575c7091635 是小程序的id。
通过这样格式的url,以及我们升级后的JKRouter就可以跳转微信小程序了。

JKRouter做了哪些升级
&  为了支持微信小程序的跳转,JKRouter主要做了,支持固定协议,不同url的跳转。主要是在JKRouterExtension.h,JKRouterExtension.m这个类中增加了方法如下:

/**
 app支持的url的特殊的url协议组成的数组

 @return 协议的数组
 */
+ (NSArray *)specialSchemes;

+ (NSArray *)specialSchemes{
    return @[];
}

集成到app中,我需要创建JKRouterExtension的category文件,重写这个方法,具体实现如下:

+ (NSArray *)specialSchemes{
    return @[@"wx-small-program"];
}

+ (void)openURLWithSpecialSchemes:(NSURL *)url extra:(NSDictionary *)extra complete:(void(^)(id result,NSError *error))completeBlock{
    if ([url.scheme isEqualToString:@"wx-small-program"]) {//微信小程序跳转的支持代码
       [JKRouterActionHandler actionWithURL:url actionType:@"wx-small-program" extra:extra complete:completeBlock];
    }
}

跳转的时候可以通过下面这句代码调用:

[JKRouter URLOpen:@"wx-small-program://monitianqi/a/b/c?userName=gh_5575c7091635"];

本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是一个个人学习交流的平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽,造成漏登,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

回到顶部
嘿,我来帮您!