关于小程序打开app传参问题

小程序打开app分两种情况:

app直接打开微信小程序之后的返回app

WXLaunchMiniProgramReq *launchMiniProgramReq = [WXLaunchMiniProgramReq object];
launchMiniProgramReq.userName = userName;
launchMiniProgramReq.path =path;
launchMiniProgramReq.miniProgramType = miniProgramType;
[WXApi sendReq:launchMiniProgramReq];

这种情况下,在微信小程序点击打开app的时候走的函数是:

- (void)onResp:(BaseResp *)resp{
    if ([resp isKindOfClass:[WXLaunchMiniProgramResp class]]) {
        NSString *errMsg = [NSString stringWithFormat:@"errorcode:%@",((WXLaunchMiniProgramResp*)resp).extMsg];
        NSLog(@"errcode:%@",errMsg);
    }
}

app分享到微信聊天,然后在聊天里面打开小程序,再跳转回app

WXMiniProgramObject *object = [WXMiniProgramObject object];
object.webpageUrl = url
object.userName = username;
object.hdImageData = data
object.path = path

WXMediaMessage *message = [WXMediaMessage message];
message.title = title;
message.description = descriptionStr;
message.thumbData = nil;
message.mediaObject = object;

SendMessageToWXReq *req = [[SendMessageToWXReq alloc] init];
req.bText = NO;
req.message = message;
req.scene = WXSceneSession;  //目前只支持会话
[WXApi sendReq:req];

这种情况下打开app传参走的是

- (void)onReq:(BaseReq *)req{
    NSLog(@"req is %@",req);
    if ([req isKindOfClass:[LaunchFromWXReq class]]) {
        LaunchFromWXReq *wxReq = (LaunchFromWXReq*)req;
        WXMediaMessage *message =  wxReq.message;
        NSString *messageExt = message.messageExt;
        NSLog(@"ext message is %@",messageExt);
    }
}

通常我们走的是第二种方式,这里很坑,微信文档也没有写详细。

### 如何使用 UniApp 调用微信小程序接口打开微信小程序 在 UniApp 中调用微信小程序接口可以实现跨应用跳转功能。以下是具体的方法以及注意事项: #### 方法概述 通过 `wx.navigateToMiniProgram` 接口,开发者可以让当前的小程序跳转到另一个指定的小程序[^1]。此接口需要提供目标小程序的相关参数,例如 appId 和路径。 #### 参数说明 - **appId**: 需要跳转的目标小程序App ID。 - **path**: 目标小程序页面的路径,支持传参(需 URL 编码)。 - **extraData**: 可选字段,用于传递数据给目标小程序。 - **envVersion**: 小程序版本环境,默认为正式版 (`release`),可选项还包括体验版 (`trial`) 或开发版 (`develop`)。 #### 示例代码 以下是一个完整的示例代码片段,展示如何通过 UniApp 使用该接口完成跳转操作: ```javascript // 跳转至其他微信小程序 function navigateToMiniProgram() { const targetAppId = 'wxe8e9f0g1h2i3j4k5'; // 替换为目标小程序的实际 AppID const targetPath = encodeURIComponent('pages/index/index?param=value'); // 目标路径及查询字符串 try { wx.navigateToMiniProgram({ appId: targetAppId, path: targetPath, extraData: { key: 'value' }, // 自定义附加数据 envVersion: 'release', // 版本设置:release/trial/develop success(res) { console.log('成功跳转:', res); }, fail(err) { console.error('跳转失败:', err); } }); } catch (error) { console.error('发生错误:', error.message); } } ``` #### 注意事项 1. 确保两个小程序之间已建立绑定关系,并且配置了合法的应用权限[^3]。 2. 如果目标小程序未发布对应版本,则可能无法正常访问。 3. 对于复杂场景下的调试问题,建议仔细阅读官方文档中的常见错误列表及其解决方案[^1]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值