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

  随着小程序(快应用)的发展,目前微信,头条。阿里。美团。等知名大厂都在开发自己的小程序应用系统。随着发展,一个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.hJKRouterExtension.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"];

扫码关注QQ交流群
JKRouter完美实现微信小程序的跳转_第1张图片
更多优质文章,可以微信扫码关注:
JKRouter完美实现微信小程序的跳转_第2张图片

你可能感兴趣的:(Object-C,IOS,iOS组件化开发之路)