两个应用之间的跳转和传值

描述:例如我的应用(B)需要请求QQ(A)允许使用QQ账号进行登录,B应用首先跳转到A界面,登录A账号后,A应用跳转到B应用,同时返回给B应用一个允许登录的回执码。B应用可以使用此回执码请求相应的账号信息。

A文件
示例:
1 . 添加协议 Info.plist 添加一行URL types,具体如下图
这里写图片描述
A-是协议的名称(可以任意),后面要用到

2 . 代码

- (IBAction)gotob:(id)sender {

    //跳转到B
    //先判断能否跳转到B应用

    /*
     如果设备上安装了带有B协议的应用,就能够跳转,否则返回NO
     PS:能够借助这个特性简单判断用户是否安装了某个特定应用
     */
     //只是跳转
//    if ([[UIApplication sharedApplication]canOpenURL:[NSURL URLWithString:@"B:"]]) {
//        [[UIApplication sharedApplication]openURL:[NSURL URLWithString:@"B:"]];
//        
//        
//    }
    if ([[UIApplication sharedApplication]canOpenURL:[NSURL URLWithString:@"BC:"]]) {

        //跳转和传值(只能字符串)
        [[UIApplication sharedApplication]openURL:[NSURL URLWithString:@"BC:username=xiaofang&password=123456"]];


    }

}

B文件
1 . 添加协议 Info.plist 添加一行URL types,具体如下图
这里写图片描述
B和BC都是协议的名称,一个应用可以有多个协议。

http://blog.sina.com.cn/s/blog_7ea0400d0102uy01.html

代码

- (IBAction)gotoa:(id)sender {

    //跳转到A
    //先判断能否跳转到A应用

    /*
     如果设备上安装了带有A协议的应用,就能够跳转,否则返回NO
     PS:能够借助这个特性简单判断用户是否安装了某个特定应用
     */
    if ([[UIApplication sharedApplication]canOpenURL:[NSURL URLWithString:@"A:"]]) {

        //跳
        [[UIApplication sharedApplication]openURL:[NSURL URLWithString:@"A:"]];


    }

}

B应用接收A应用传递的信息
AppDelegate.m
下面两个方法都可以接收信息

-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{
    NSLog(@"%@",url);
    //输出 BC:username=xiaofeng&password=123456
    return YES;
}
比较老的一个方法
-(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url{
    NSLog(@"%@",url);
    return YES;

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值