實現兩個 app 的跳轉
這里我創建了兩個 demo. 名字叫 A 和 B . 現在要想從 A 跳轉到 B 實現流程
第一步 我們去到 B app 的項目中做如下操作
圖片.png
操作完了之后 在到 B 項目的appdelegate 的. m 文件中實現以下代理
方法
圖片.png
第一步到這里完成了,此時我們需要到 A 項目中去配置了
如果你的 ios 系統高于9.0 info.plist文件中增加一個LSApplicationQueriesSchemes字段,把它設置為數組類型,并配置需要跳轉的協議名單.如下圖
圖片.png
設置完成之后 我們就可以進行跳轉代碼了
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
NSString *appString = @"testB://這個后面可以拼接你需要傳遞到 B app 的參數";
// 接下來就是我做跳轉遇到的一個坑
//就是要對 appString 進行 utf8編碼. 不然可能會出現 url 為 nil 的情況! 當然你從傳遞的參數沒有特殊字符和中文也可以不編碼
appString = [appString stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSURL *url = [NSURL URLWithString:appString];
if ([[UIApplication sharedApplication] canOpenURL:url]) {
if ([[UIDevice currentDevice].systemVersion floatValue] >= 10.0){
// ios10 用這個
[[UIApplication sharedApplication] openURL:url options:@{} completionHandler:^(BOOL success) {
}];
}else{
[[UIApplication sharedApplication]openURL:url];
}
}else{
NSLog(@"沒有安裝應用");
}
}