iOS 两应用之间相互跳转

最近在整理原来的东西发现跳转另外的应用其实用处还是挺大的,比如最近的”支付宝“比较火,还有微信╮(╯▽╰)╭

先把两个应用设为A和B

A到B 

A首先要知道B的位置

那么B就要设置定位标记让A知道 在info.plist加url types


只是跳转过去是没有意义的,还要有参数传递这样才有意义

    NSString *paramStr = [NSString stringWithFormat:@"MyAppTest://username=%@&age=%@&address=%@", @"test123", @"100", @"上海市"];
    NSURL *url = [NSURL URLWithString:[paramStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
    if ([[[UIDevice currentDevice]systemVersion] floatValue]>=10.0) {
        [[UIApplication sharedApplication] openURL:url options:nil completionHandler:^(BOOL success) {
            if (success) {
                NSLog(@"进入成功");
            }
        }];
    }else{
         [[UIApplication sharedApplication] openURL:url];
    }

需要注意的是解析汉字需要UTF8


最后就是B接收A的信息

iOS9之前用

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation

iOS9之后用

-(BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options

解析url时候一定要转化

    NSString *urlStr = [[NSString stringWithFormat:@"%@",url] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

这是解析的字符串,也可以用字典转字符串的方法

-(BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options{
    NSString *urlStr = [[NSString stringWithFormat:@"%@",url] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    if ([urlStr hasPrefix:@"JumpTest://"]) {
        NSLog(@"TestAppDemo1 request params: %@", urlStr);
        urlStr = [urlStr stringByReplacingOccurrencesOfString:@"JumpTest://" withString:@""];
        NSArray *paramArray = [urlStr componentsSeparatedByString:@"&"];
        NSMutableDictionary *paramsDic = [[NSMutableDictionary alloc] initWithCapacity:0];
        for (int i = 0; i < paramArray.count; i++) {
            NSString *str = paramArray[i];
            NSArray *keyArray = [str componentsSeparatedByString:@"="];
            NSString *key = keyArray[0];
            NSString *value = keyArray[1];
            [paramsDic setObject:value forKey:key];
            NSLog(@"key:%@ ==== value:%@", key, value);
        }
        
    }
    return NO;
}

A到B知道了,B到A大同小异

Demo http://download.youkuaiyun.com/detail/rpf2014/9697217






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值