1.首先添加应用白名单- 例如微博
- 进入 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。