微信小程序唤起其他微信小程序 / 移动应用App唤起小程序
1. 微信小程序唤起微信小程序
小程序唤起其他小程序很简单
先上链接
小程序跳转小程序 Navigator组件 推荐使用
小程序跳转小程序 wx.navigateToMiniProgram(OBJECT) API 即将废弃 不推荐使用
👉小程序基础库版本要在础库 2.0.7 开始支持,低版本需做兼容处理。
👉注意:不是任何小程序都可以唤起的,只能打开同一公众号下关联的小程序
<navigator class='navigatorClass' target="miniProgram" open-type="navigate" app-id="MiniProgram-YourAppID" path="MiniProgram-Path 一般为pages/为首" extra-data="MiniProgram-Parameter 跳转后的微信小程序onLaunch()方法中可以获取" version="release 要跳转的小程序版本"></navigator>
//navigator组件也可以添加class属性 可以当做一个button来使用 点击触发
//其他没有用的的参数 详见上面的Navigator组件文档链接
2. 移动应用App唤起微信小程序
移动应用App唤起小程序的方式也不麻烦,但由于当时开发的时候参考的文档有点模棱两可,导致调试了一阵子,这也是写这篇文章的初衷,避免大家走弯路。
先上链接
移动应用App唤起微信小程序
具体流程:
- 登陆微信开放平台
- 管理中心-创建移动应用-等待审核通过
- 审核通过后-查看应用(拉到最下面)-关联小程序信息-查看关联-关联小程序-小程序账号持有者通过申请
- 到这一步就可以开始移动开发了
👉这里只介绍iOS SDK接入开发全流程 原文链接
下载导入或是cocoapod接入随你,原文链接里写的挺清楚,应该不会遇到太多问题,这里提几个容易遗忘和出错的点
-
URL Schemes设置 如下图所示
Identifier直接填写 weixin
URL Schemes填写已申请通过的App详情中的AppId
URL Schemes设置 -
Info.plist设置添加
Info.plist设置Key-LSApplicationQueriesSchemes
如下图所示
-
必须在代码中向微信终端注册你的id
NSLog(@"注册微信权限 ===== %d", [WXApi registerApp:@"AppId"]);
👉都设置成功后,如果想测试一下是否可以使用SDK可以调用api打开微信试一下,如果能跳转到微信,说明可以继续开发了。
//测试代码
[WXApi openWXApp];
👉在iOS资源Demo中有一个写好的类WXApiManager
可以拿来直接用,方便哦~Demo
由于我们的需求是点击不同的按钮跳转到小程序不同的页面,所以我有写一个工具类,具体代码如下:
//外部调用此方法前先调用abilityCheck判断是否可以正常调起微信小程序
+ (BOOL)openWXMiniProgram:(MiniProgramPathType)path {
WXLaunchMiniProgramReq *launchMiniProgramReq = [WXLaunchMiniProgramReq object];
launchMiniProgramReq.userName = @"原始ID";
launchMiniProgramReq.path = [WXMiniProgramTool transformPath:path];
launchMiniProgramReq.miniProgramType = WXMiniProgramTypeRelease;
return [WXApi sendReq:launchMiniProgramReq];
}
//检查用户是否安装微信
//判断当前微信的版本是否支持OpenApi
+ (BOOL)abilityCheck {
if ([WXApi isWXAppInstalled]) {
if ([WXApi isWXAppSupportApi]) {
return YES;
}
return NO;
}
return NO;
}
//外部调用传入枚举值在内部转化为具体小程序path
+ (NSString *)transformPath:(MiniProgramPathType)path {
if (path == MiniProgramPathDefault) {
return @"pages/path1/path1";
}
if (path == MiniProgramPathIndex) {
return @"pages/path2/path2";
}
if (path == MiniProgramPathTeach) {
return @"pages/path3/path3";
}
return @"pages/pathDefault/pathDefault";
}
iOS这里有个很坑的地方,文档中是这样写的
WXLaunchMiniProgramReq *launchMiniProgramReq = [WXLaunchMiniProgramReq object];
launchMiniProgramReq.userName = userName; //拉起的小程序的username
launchMiniProgramReq.path = path; //拉起小程序页面的可带参路径,不填默认拉起小程序首页
launchMiniProgramReq.miniProgramType = miniProgramType; //拉起小程序的类型
return [WXApi sendReq:launchMiniProgramReq];
这个userName
并没有具体说明是什么参数,其实是你小程序配置里的原始ID,登陆小程序微信公众平台-设置-最下面 账号信息-原始ID
若这个参数不填或者填错,该API直接返回NO,不好发现错误原因。
到这一步如果没有出错,恭喜你已经看到你要跳转的小程序弹出了。如果你们的需求还有从小程序中跳转回移动应用App后的操作,参考文档,这里就不说了。
注意身体,小心秃顶😬