iOS - URL Schema
2019-04-17 本文已影响0人
lionsom_lin
一、Schema简介和使用
-
注册Schema(可参考:自定义 URL Scheme 完全指南)
在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.gif2.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®istered=1
第二步:跳转到应用中获取参数: