打开并跳转到京东app指定页面

info里面配置它的 schemes 为对应app的如:openapp.jdMobile.
LSApplicationQueriesSchemes
里面配置
openapp.jdmobile
直观一点就在info.plist里面配置.

将fbauth2更改为openapp.jdmobile即可.png

然后 跳转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.并没有达到判断的效果.

LSApplicationQueriesSchemes中配置的白名单.是需要跳转到的app设置的url.我们跳转的时候.如果有下载这个app.那么可以拿这个白名单做判断.如果在这个白名单里面就代表有这个app.

而在URLSchemes是我们自己的设置的url(key),别人要是跳转到我们app.就需要在LSApplicationQueriesSchemes中配置我们的url(key)!这样就一直在我们白名单列里面.所以在这里配置以后[[UIApplication sharedApplication] canOpenURL:requestURL]判断返回一直为yes.(个人这么理解!)

感谢:http://sspai.com/31500#09 获取任意app.URLSchemes的方法

你可能感兴趣的:(打开并跳转到京东app指定页面)