iOS 两应用之间相互跳转

来源:互联网 发布:每周开户数据 编辑:程序博客网 时间:2024/05/29 18:02

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

先把两个应用设为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.csdn.net/detail/rpf2014/9697217






0 0
原创粉丝点击