今天无意中了解到 App 竟然可以直接打开小程序这个功能, 一致认为不可能啊, 因为小程序是依靠微信, 如果手机上微信没有打开, 或者是没有安装微信会怎样呢? 一起探索吧!
步骤
1. 打开微信开发者平台文档, 下载微信 SDK.
2. 根据文档手动集成 SDK
3. 点击进入小程序代码:
- WXLaunchMiniProgramReq *launchMiniProgramReq = [WXLaunchMiniProgramReq object];
- launchMiniProgramReq.userName = @"gh_fc392b7c02cf"; // 拉起的小程序的原始 ID
- launchMiniProgramReq.path = @""; // 拉起小程序页面的可带参路径, 不填默认拉起小程序首页
- launchMiniProgramReq.miniProgramType = WXMiniProgramTypePreview; // 拉起小程序的类型
- [WXApi sendReq:launchMiniProgramReq];
3. 当小程序跳转 App 时, 会走 onReq 的代理方法 (文档中说的是 onResp 的方法, 很坑). 需要把 req 强转成 LaunchFromWXReq. 其中 WXMediaMessage 下的 messageExt 才是小程序传给我们的参数.
- -(void)onResp:(BaseResp *)resp
- {
- if ([resp isKindOfClass:[WXLaunchMiniProgramResp class]])
- {
- WXLaunchMiniProgramResp*rep = (WXLaunchMiniProgramResp*)resp;
- NSString *string = rep.extMsg;
- NSLog(@"参数:%@",string);
- }
- }
注意:
1. 查看移动端与小程序是否在同一开发者平台下 (同一平台下直接跳转, 不同平台下需要关联才能跳转)
同一平台
关联
2.App 跳到小程序时报如下图:
原因: 因为 App 暂未上架.
解决方案: 我暂时选了一个上线的 App 的 Bundle id.
App 跳到小程序时报如下图:
原因: 因为用的是体验版, 所登的微信账号无体验权限.
解决方案: 管理员给该账户体验权限, 用该小程序有体验权限的账号测试.
来源: http://www.jianshu.com/p/ec01a320d2f2