四個檸檬給你吃
1.首先添加應用白名單- 例如微博
- 進入 info.plist 文件編輯白名單
info.plist
將下面代碼粘貼
<key>LSApplicationQueriesSchemes</key>
<array>
<!-- 新浪微博 URL Scheme 白名單-->
<string>sinaweibohd</string>
<string>sinaweibo</string>
<string>sinaweibosso</string>
<string>weibosdk</string>
<string>weibosdk2.5</string>
</array>
2.獲取微博主頁的 UID :點擊指定微博主頁后面的一串數字為 UID
http://weibo.com/1*****6874/profile?topnav=1&wvr=6&is_all=1
3.跳轉方法
NSURL *url = [NSURL URLWithString:@"sinaweibo://userinfo?uid=601*****39"];
// 如果已經安裝了這個應用,就跳轉
if ([[UIApplication sharedApplication] canOpenURL:url]) {
[[UIApplication sharedApplication] openURL:url];
}
白名單
iOS 9系統策略更新,限制了 http 協議的訪問,此外應用需要在“Info.plist”中將要使用的URL Schemes列為白名單,才可正常檢查其他應用
這個URL Scheme機制的改變主要影響了兩個api:canOpenURL和openURL。在iOS9以前,如果要判斷系統中有沒有APP能夠處理相應的URL,直接調用canOpenURL就可以了,openURL同理。而在iOS9之后,若要訪問某個URL,則必須在程序的info.plist中把訪問的URL提前設置好,將其加入白名單中,才能夠順利使用canOpenURL和openURL,否則,系統會拒絕訪問,直接返回NO。