運(yùn)用openURL方法 實(shí)現(xiàn) 程序間跳轉(zhuǎn) 击蹲, 撥打電話 辨萍, 發(fā)送郵件等功能近忙。
程序間跳轉(zhuǎn)
核心代碼
//需要跳轉(zhuǎn)至App的 Scheme
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"iMeituan://"]];
//判斷是否可以打開URL
if ([[UIApplication sharedApplication] canOpenURL:url]) {
//打開URL
[[UIApplication sharedApplication] openURL:url options:@{} completionHandler:^(BOOL success) {
if (success) {
NSLog(@"調(diào)用成功");
}else{
NSLog(@"調(diào)用失敗");
}
}];
}else{
NSLog(@"打開失敗");
}
URL
統(tǒng)一資源定位符(可以沒有路徑但是必須要有協(xié)議頭)
Scheme
協(xié)議頭,用來決定查找資源的方式
options
參數(shù) 具體含義 有待研究骄酗。
調(diào)用時(shí)傳的參數(shù) 不管是什么 接收方 里面的參數(shù)都是
{UIApplicationOpenURLOptionsOpenInPlaceKey = 0;
UIApplicationOpenURLOptionsSourceApplicationKey = @"com.Demo.openURLTest"(Bundle ID)}
知乎上有一篇帖子 , 列舉了一些 常用的軟件Scheme地址
額外配置
- 在“Info.plist”中將要使用的URL Schemes列為 Http訪問白名單
LSApplicationQueriesSchemes
- 將Build Settings 下的 Enable Bitcode邦邦,把它設(shè)置成 NO
其他
- 撥打電話
//tel: 為撥打電話的 協(xié)議頭
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://8004664411"]];
- 發(fā)送郵件
//mailto: 為發(fā)送郵件的 協(xié)議頭
[[UIApplication sharedApplication]openURL:[NSURL URLWithString:@"mailto://devprograms@apple.com"]];
- 發(fā)短信
//sms: 為發(fā)送短信的 協(xié)議頭
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"sms://10086"]];
- 調(diào)用瀏覽器
//正常輸入網(wǎng)址就好
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.baidu.com"]];
發(fā)送郵件 和 短信 通常并不會(huì)使用openURL 的方式來調(diào)用船老。