在Xcode 9 下,新建的工程,在plist文件中註冊URL Schemes,從safari沒法打開問題ios
1:URL Scheme是什麼chrome
2:URL Scheme有什麼做用api
3:URL Scheme怎麼使用瀏覽器
因爲蘋果的app都是在沙盒中,相互是不能訪問數據的。可是蘋果仍是給出了一個能夠在app之間跳轉的方法:URL Scheme。簡單的說,URL Scheme就是一個可讓app相互之間能夠跳轉的協議。每一個app的URL Scheme都是不同的,若是存在同樣的URL Scheme,那麼系統就會響應先安裝那個app的URL Scheme,由於後安裝的app的URL Scheme被覆蓋掉了,是不能被調用的。安全
那麼app之間的跳轉有什麼做用呢?咱們所使用的每個app就至關於一個功能,app的跳轉可使得每一個app就像一個功能組件同樣,幫助咱們完成須要作的事情,好比三方支付,搜索,導航,分享等等。微信
要跳轉到別人的app,就要知作別人的app的跳轉協議是什麼,須要傳入什麼參數,咱們常見的跳轉協議有下面這些:網絡
1.打開Mail [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"mailto://info@icloud.com"]] 2.打開電話 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://18688886666"]]; 3.打開SMS [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"sms:18688886666"]];
因此,若是咱們但願別人打開咱們的app,只要在plist文件中配置一下你的跳轉協議便可,以下圖所示:app
「emp601602://」就是個人跳轉協議了,編譯一下app,在safari中輸入「emp601602:// 」就能夠跳轉到個人app中。less
可是在Xcode 9 下,新建的工程,在plist文件中註冊URL Schemes,是沒法從safari啓動app的。
須要在以下位置註冊URL Schemes,iphone
「emp601602:// 」只能讓用戶跳轉到咱們的app,以後的處理是在appDelegate的代理中,代理方法以下:
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
在這個方法裏,能夠獲取到觸發這個方法的 URL,能夠經過對這個 URL 進行判斷,例如根據不一樣的 Host,不一樣的 Query String 來執行不一樣的動做。
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { NSLog(@"%@", [url absoluteString]); // 在 host 等於 item.taobao.com 時,說明一個寶貝詳情的 url, // 那麼就使用本地的 TBItemDetailViewController 來顯示 if ([[url host] isEqualToString:@"item.taobao.com"]) { // 這裏只是簡單地假設 url 形式爲 taobao://item.taobao.com/item.htm?id=12345678 // 先獲取要查看的寶貝詳情的 itemId NSString *itemId = [[url query] substringFromIndex:[[url query] rangeOfString:@"id="].location+3]; // 使用本地 ViewController 來顯示淘寶商品詳情 TBItemDetailViewController *controller = [[TBItemDetailViewController alloc] initWithItemId:itemId]; [self.navigationController pushViewController:controller animated:YES]; } }
在你的動做執行完成了以後,有可能時須要返回到原有app的,這樣就須要你的app跳轉協議的url裏面應該能傳入調用者app的跳轉協議,這樣用戶跳轉到你的app完成動做後就能跳轉回去了。
蜂窩網絡:prefs:root=MOBILE_DATA_SETTINGS_ID
*** — prefs:root=General&path=Network/***
Wi-Fi:prefs:root=WIFI
定位服務:prefs:root=LOCATION_SERVICES
我的熱點:prefs:root=INTERNET_TETHERING
關於本機:prefs:root=General&path=About
輔助功能:prefs:root=General&path=ACCESSIBILITY
飛行模式:prefs:root=AIRPLANE_MODE
鎖定:prefs:root=General&path=AUTOLOCK
亮度:prefs:root=Brightness
藍牙:prefs:root=Bluetooth
時間設置:prefs:root=General&path=DATE_AND_TIME
FaceTime:prefs:root=FACETIME
設置:prefs:root=General
設置 prefs:root=SETTING
定位服務 prefs:root=LOCATION_SERVICES
鍵盤設置:prefs:root=General&path=Keyboard
iCloud:prefs:root=CASTLE
iCloud備份:prefs:root=CASTLE&path=STORAGE_AND_BACKUP
語言:prefs:root=General&path=INTERNATIONAL
定位:prefs:root=LOCATION_SERVICES
音樂:prefs:root=MUSIC
Music Equalizer — prefs:root=MUSIC&path=EQ
Music Volume Limit — prefs:root=MUSIC&path=VolumeLimit
Network — prefs:root=General&path=Network
Nike + iPod — prefs:root=NIKE_PLUS_IPOD
Notes — prefs:root=NOTES
Notification — prefs:root=NOTIFICATIONS_ID
Phone — prefs:root=Phone
Photos — prefs:root=Photos
Profile — prefs:root=General&path=ManagedConfigurationList
Reset — prefs:root=General&path=Reset
Safari — prefs:root=Safari
Siri — prefs:root=General&path=Assistant
Sounds — prefs:root=Sounds
Software Update — prefs:root=General&path=SOFTWARE_UPDATE_LINK
Store — prefs:root=STORE
Twitter — prefs:root=TWITTER
Usage — prefs:root=General&path=USAGE
Wallpaper — prefs:root=Wallpaper
電話 mobilephone://
備忘錄 mobilenotes://
墨客 com.moke.moke-1://
名片全能王 camcard://
掃描全能王 camscanner://
TuneIn Radio tunein:// 或 tuneinpro://
OfficeSuite mobisystemsofficesuite://
WPS Office KingsoftOfficeApp://
Line line://
1Password onepassword://
Clear(著名的Todo應用) clearapp://
Chrome谷歌瀏覽器 googlechrome://
Calendars 5 calendars://
GoodReader 4 com.goodreader.sendtogr://
PDF Expert 5 pdfexpert5presence://
Documents 5 rdocs://
nPlayer nplayer-http://
GPlayer gplayer://
AVPlayer HD AVPlayerHD://
AVPlayer AVPlayer://
Ace Player aceplayer://
12306訂票助手 trainassist://
金山詞霸 com.kingsoft.powerword.6://
節奏大師 tencentrm://
趕集生活 **://
鳳凰新聞 comIfeng3GifengNews://
高鐵管家 gtgj://
飛信 fetion://
豆瓣FM doubanradio://
大智慧 dzhiphone://
布卡漫畫 buka://
愛奇藝PPS ppstream://
嗶哩嗶哩動畫 bilibili://
56視頻 com.56Video://
365日曆 rili365://
58同城 wbmain://
碰見 iaround://
陌陌 momochat://
有道詞典 yddict://
優酷 youku://
掌閱iReader iReader://
藝龍旅行 elongIPhone://
迅雷+迅雷雲播 thunder://
熊貓公交 wb1405365637://
攜程無線 CtripWireless://
無線蘇州 SuZhouTV://
惟品會 vipshop://
微視 weishiiosscheme://
微拍 wpweipai://
旺信 wangxin://
網易公開課 ntesopen://
網易將軍令 netease-mkey://
萬年曆 youloft.419805549://
土豆視頻 tudou://
同花順 amihexin://
天涯社區 tianya://
天氣通Pro sinaweatherpro://
天氣通 sinaweather://
墨跡天氣 rm434209233MojiWeather://
淘寶旅行 taobaotravel://
人人 renrenios://
蜻蜓FM qtfmp://
浦發銀行 wx1cb534bb13ba3dbd://
招商銀行 cmbmobilebank://
建設銀行 wx2654d9155d70a468://
工商銀行 com.icbc.iphoneclient://
酷我音樂 com.kuwo.kwmusic.kwmusicForKwsing://
酷狗音樂 kugouURL://
今日頭條 snssdk141://
京東 openApp.jdMobile://
QQ mqq://
微信 wechat:// 或 weixin://
QQ音樂 qqmusic://
QQ鬥地主 tencent382://
QQ瀏覽器 mttbrowser://
QQ安全中心 qmtoken://
QQ國際版 mqqiapi://
騰訊新聞 qqnews://
騰訊微雲 weiyun://
騰訊地圖 sosomap://
騰訊企業郵箱 qqbizmailDistribute2://
騰訊手機管家 mqqsecure://
騰訊視頻 tenvideo:// 或 tenvideo2:// 或 tenvideo3://
騰訊微博 TencentWeibo://
每天星連萌 tencent100689806://
每天愛消除 tencent100689805://
每天酷跑 tencent100692648://
每天飛車 tencent100695850://
PPTV pptv://
愛奇藝視頻 qiyi-iphone://
暴風影音 com.baofeng.play://
保衛蘿蔔2 wb2217954495://
保衛蘿蔔 wb1308702128://
百度音樂 baidumusic://
百度視頻 baiduvideoiphone:// 或 bdviphapp://
百度糯米 bainuo://
百度魔圖 photowonder://
百度魔拍 wondercamera://
百度地圖 baidumap://
百度導航 bdNavi://
百度 baiduboxapp:// 或 BaiduSSO://
搜狗輸入法 com.sogou.sogouinput://
搜狐視頻 sohuvideo-iphone:// 或 sohuvideo://
搜狐新聞 sohunews://
隨手記 FDMoney://
每天動聽 ttpod://
挖財記帳 wacai://
威鋒網 com.weiphone.forum://
新浪微博 weibo:// 或 sinaweibo://
網易郵箱 neteasemail://
高德導航 Autonavi://
百度輸入法 BaiduIMShop://
百度貼吧 com.baidu.tieba://
淘寶 taobao://
天貓 tmall://
支付寶 alipay://
旺旺賣家版 wangwangseller://
百度雲 baiduyun://
網易新聞 newsapp://
UC瀏覽器 ucbrowser://
E-Mail MESSAGE://