一、Schema簡介和使用
-
注冊Schema(可參考:自定義 URL Scheme 完全指南)
在Info.plist中進行配置
URL Identifier,一個字符串對象。該字符串是你自定義的 URL scheme 的名字。建議采用反轉(zhuǎn)域名的方法保證該名字的唯一性,比如 com.yourCompany.yourApp。

-
接收schema并處理
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {
NSLog(@"從哪個app跳轉(zhuǎn)而來 Bundle ID: %@", options[UIApplicationOpenURLOptionsSourceApplicationKey]);
NSLog(@"URL scheme:%@", [url scheme]);
NSLog(@"URL query:%@", [url query]);
// 允許打開
return YES;
}
-
調(diào)用APP的生命周期
關(guān)于App間的跳轉(zhuǎn)問題 官網(wǎng) - Inter-App Communication
如果待調(diào)用的App已經(jīng)運行了,那么它的生命周期如下:

如果待調(diào)用的App在后臺,那么它的生命周期如下:

二、調(diào)用自定義 URL Scheme
2.1、從 Safari 中調(diào)用自定義 URL Scheme

從 Safari 中調(diào)用自定義 URL Scheme.gif
2.2、從另一個 iPhone 應用中調(diào)用自定義 URL Scheme
-(void)btnCallBack {
NSURL *URL = [NSURL URLWithString:@"LionsomApp://"];
if (@available(iOS 10.0, *)) {
[[UIApplication sharedApplication] openURL:URL options:@{} completionHandler:^(BOOL success) {
NSLog(@"iOS10 - 跳轉(zhuǎn)成功!?。?);
}];
} else {
// Fallback on earlier versions
NSLog(@"iOS9 - 跳轉(zhuǎn)成功?。?!");
[[UIApplication sharedApplication] openURL:URL];
}
}

從另一個App中調(diào)用自定義 URL Scheme.gif
三、通過自定義 URL Scheme 向應用傳遞參數(shù)

第一步:在模擬器safari中輸入:
LionsomApp://?token=123abc®istered=1
第二步:跳轉(zhuǎn)到應用中獲取參數(shù):
