iOSApp与微信小程戏交互|传值|iOSApp给微信小程序传值

iOSApp跳转到微信小程序(包括传值), 微信小程序再跳回App(包括传值),微信文档上都有,这里来讲一下微信文档没有写到的一些细节

一.iOS跳转微信小程序传值:

通过path传值,拼接在路径上

不需要传值的情况下,跳转的代码是:

WXLaunchMiniProgramReq *launchMini = [WXLaunchMiniProgramReq object];
launchMini.userName = @"gh_xxxx";
launchMini.path = @"home/xxx/xxx";
//WXMiniProgramTypeRelease:正式版
//WXMiniProgramTypePreview:体验版
//WXMiniProgramTypeTest:开发版
 launchMini.miniProgramType = WXMiniProgramTypePreview;

[WXApi sendReq:launchMini completion:nil];

path这个参数是跳转小程序的路径,如果需要传值,那么就需要把参数拼接在path上:

例如需要传name=zhangsan , age=18 这两个值

则path 的写法为 path=@"home/xxx/xxx?name=zhangsan&age=18";

然后让你们的微信开发同时去解析这个path。

二.App接收小程序传过来的值

微信文档里仅仅说了在Appdelegate 的 微信协议方法- (void)onResp:(BaseResp *)resp 里接收,但是它并没有告诉你先要注册协议(坑爹)

微信文档地址:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/launchApp.html

正规的流程是先在 - (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options 方法里注册 协议:[WXApi handleOpenURL:url delegate:self]

小程序跳到App先走这个这册方法,才会走 - (void)onResp:(BaseResp *)resp 方法。

代码如下

- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options
{
    /*
     platformId=wechat 是微信小程序带过来的host值,你也可以不判断这个,
     直接写 [WXApi handleOpenURL:url delegate:self]
     
     */
    if ([[url host] isEqualToString:@"platformId=wechat"])
    {
        return [WXApi handleOpenURL:url delegate:self];
    }
}
- (void)onResp:(BaseResp *)resp
{
    if ([resp isKindOfClass:[WXLaunchMiniProgramResp class]]){
        
        WXLaunchMiniProgramResp *resp1 = ((WXLaunchMiniProgramResp *)resp);
        
        //对应JsApi navigateBackApplication中的extraData字段数据
        NSString *string = resp1.extMsg;
        
    }
}

  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值