info里面配置它的 schemes 为对应app的如:openapp.jdMobile.
<key>LSApplicationQueriesSchemes</key>
里面配置
<string>openapp.jdmobile</string>
直观一点就在info.plist里面配置.
然后 跳转url即可
else if([url fq_ContainsString:@"openapp.jdmobile://virtual?"]){ if ([[UIApplication sharedApplication] canOpenURL:requestURL]) { [[UIApplication sharedApplication] openURL:requestURL]; }else{ // 打开京东下载连接 NSURL * url = [NSURL URLWithString:@"https://itunes.apple.com/cn/app/shou-ji-jing-dong-xin-ren/id414245413?l=en&mt=8"]; [[UIApplication sharedApplication] openURL:url]; }
这样就可以了
中间出现一个bug.不明白URLSchemes什么意思.添加了白名单.
QQ20161125-3.png这样我们无论有没有下载对应的app.在调用[[UIApplication sharedApplication] canOpenURL:requestURL]
方法的时候都会返回yes.并没有达到判断的效果.
在<key>LSApplicationQueriesSchemes</key>中配置的白名单.是需要跳转到的app设置的url.我们跳转的时候.如果有下载这个app.那么可以拿这个白名单做判断.如果在这个白名单里面就代表有这个app.
而在URLSchemes是我们自己的设置的url(key),别人要是跳转到我们app.就需要在<key>LSApplicationQueriesSchemes</key>中配置我们的url(key)!这样就一直在我们白名单列里面.所以在这里配置以后[[UIApplication sharedApplication] canOpenURL:requestURL]
判断返回一直为yes.(个人这么理解!)
感谢:http://sspai.com/31500#09 获取任意app.URLSchemes的方法
网友评论