随着小程序(快应用)的发展,目前微信,头条。阿里。美团。等知名大厂都在开发自己的小程序应用系统。随着发展,一个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"];
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是一个个人学习交流的平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽,造成漏登,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。