两个app互相通信 iOS

app互相跳转在ios9.0之后主要是以下方法:

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

1.首先创建两个项目,分别是YiTwoDemo和YiNewDemo

2.分别在两个项目中添加URL Types,LSApplicationQueriesSchemes数组,把允许跳转的URL Schemes添加到这个数组中。

如果是ios9.0之前就不用配置LSApplicationQueriesSchemes;但是呢,在iOS9.0之后需要添加白名单,否则app 会跳转失败。

2.下面说下代码吧。

以YiNewDemo项目为跳转传参的app:

 //开始给另一个 app传递的数据
    //    NSString *ourPath = [NSString stringWithFormat:@"YYTwoDemoSchems://写你想要带的参数"];
    NSURL *ourUrl = [NSURL URLWithString:@"YYNewDemoSchems://"];
    if ([[UIApplication sharedApplication] canOpenURL:ourUrl]) {
        //能打开此链接
        UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
        pasteboard.image = [UIImage imageNamed:@"slider.png"];
        pasteboard.string = @"新的app来啦";
        pasteboard.URL = [NSURL URLWithString:@"http://www.baidu.com"];
        NSDictionary *options = @{UIApplicationOpenURLOptionsSourceApplicationKey:@YES};
        if (@available(iOS 10.0, *)) {
            //            [[UIApplication sharedApplication] openURL:ourUrl options:options completionHandler:nil];
            
            [[UIApplication sharedApplication] openURL:ourUrl options:options completionHandler:^(BOOL success) {
                if (success) {
                    NSLog(@"跳转成功");
                }
            }];
        } else {
            // Fallback on earlier versions
            [[UIApplication sharedApplication] openURL:ourUrl];
        }
    }else{
        NSLog(@"can not open");
    }

以YiTwoDemo为接受参数的app:

iOS9.0以后:

- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options{
    NSLog(@" 当前的URL ===  %@  %@  %@ ", [url absoluteString], [url scheme]);
    UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
    NSLog(@"传递过来的数据 =====   %@   %@", pasteboard.string, pasteboard.URL);
    return YES;
}

iOS9.0之前:

- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url sourceApplication:(nullable NSString *)sourceApplication annotation:(nonnull id)annotation{
    NSLog(@" 当前的URL ===  %@  %@  %@ ", [url absoluteString], [url scheme], [url query]);
    UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
    NSLog(@"传递过来的数据 =====   %@", pasteboard.string);
    return YES;
}

3.最后,运行真机,实现跳转和传参。要想两个app之间互相跳转,每个app都配置一下就好啦。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值