美文网首页
iOS应用间跳转(带参数)

iOS应用间跳转(带参数)

作者: Tony_HYH | 来源:发表于2019-02-28 19:57 被阅读0次
    封面图.jpeg

    iOS的应用间跳转,项目A内点击按钮,或者其他操作,唤醒项目B,项目B做一定的响应操作。

    一、配置信息

    两个应用间通信,需要遵循同一个协议规范,类似于微信第三方登录,需要在Info.plist中添加白名单。

    首先,在项目B的Info.plistURL types中添加一组数据,如下图所示
    openURL为双方设定的共同遵循的协议名字,可以随意设置,但不要和其他的重复,最好是项目A的名称。
    URL identifier为项目A的Bundle identifier,可以在项目A的TARGET里复制过来

    项目B Info.plist配置.png

    二、触发跳转操作

    在项目A中需要实现跳转的操作中,比如按钮的点击事件中,实现以下代码

    - (void)tapOpenURL{
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"openURL://"] options:@{} completionHandler:^(BOOL success) {
            // success to do
        }];
    }
    

    @“openURL://"中,openURL为项目B中配置的共同协议,可以在这个url后拼接想要传递的参数

    三、url回调处理

    以上完成,在项目B的AppDelegate里实现应用url的回调方法,

    - (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options{
        NSLog(@"=========%@========",url);
    //    微信登录
    //    return [WXApi handleOpenURL:url delegate:[WXApiManager sharedManager]];
        return YES;
    }
    

    在这里可以获得从项目A中传递过来的url,并取得参数,然后就可以做相应的各种处理了。

    //iOS10后,下面的方法被废弃了,用上面的那个方法取代
    -(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
    {
        return YES;
    }
    

    相关文章

      网友评论

          本文标题:iOS应用间跳转(带参数)

          本文链接:https://www.haomeiwen.com/subject/ccbkuqtx.html