iOS - URL Schema

一、Schema简介和使用

在Info.plist中进行配置
URL Identifier,一个字符串对象。该字符串是你自定义的 URL scheme 的名字。建议采用反转域名的方法保证该名字的唯一性,比如 com.yourCompany.yourApp。

  • 接收schema并处理

- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {
    NSLog(@"从哪个app跳转而来 Bundle ID: %@", options[UIApplicationOpenURLOptionsSourceApplicationKey]);    
    NSLog(@"URL scheme:%@", [url scheme]);
    NSLog(@"URL query:%@", [url query]);
    // 允许打开
    return YES;
}
  • 调用APP的生命周期

关于App间的跳转问题 官网 - Inter-App Communication

如果待调用的App已经运行了,那么它的生命周期如下:

如果待调用的App在后台,那么它的生命周期如下:

二、调用自定义 URL Scheme

2.1、从 Safari 中调用自定义 URL Scheme

从 Safari 中调用自定义 URL Scheme.gif

2.2、从另一个 iPhone 应用中调用自定义 URL Scheme

-(void)btnCallBack {
    NSURL *URL = [NSURL URLWithString:@"LionsomApp://"];
    if (@available(iOS 10.0, *)) {
        [[UIApplication sharedApplication] openURL:URL options:@{} completionHandler:^(BOOL success) {
            NSLog(@"iOS10 - 跳转成功!!!");
        }];
    } else {
        // Fallback on earlier versions
        NSLog(@"iOS9 - 跳转成功!!!");
        [[UIApplication sharedApplication]  openURL:URL];
    }
}
从另一个App中调用自定义 URL Scheme.gif

三、通过自定义 URL Scheme 向应用传递参数

第一步:在模拟器safari中输入:

LionsomApp://?token=123abc&registered=1

第二步:跳转到应用中获取参数:

四、APP之间跳转的另一个方法 - Universal Links方式

https://www.jianshu.com/p/76da56b3bd55

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容