您的位置:首页 > 移动开发 > IOS开发

iOS 跳转淘宝、天猫、京东商品详情页

2017-10-09 14:41 666 查看

配置schame白名单

http://www.jianshu.com/p/40ea9c242ef0

代码部分

if([self canGoToTaoBao:url]) { // 如果可以打开淘宝
NSString *urlStr = [url absoluteString];
NSString *agreement = [urlStr substringToIndex:5];
NSString *httpsUrl = [urlStr stringByReplacingOccurrencesOfString:@"https" withString:@"taobao"];
NSString *httpUrl = [urlStr stringByReplacingOccurrencesOfString:@"http" withString:@"taobao"];
NSString *taobaoUrl = [agreement isEqualToString:@"https"]?httpsUrl:httpUrl;
NSURL *newUrl = [NSURL URLWithString:taobaoUrl];
[[UIApplication sharedApplication] openURL:newUrl options:@{} completionHandler:nil];
}// 天猫
else if([self canGoToTianMaoDetail:url]) {
NSRange range = [[url absoluteString] rangeOfString:@"&id="];
NSString *productID = [[url absoluteString] substringWithRange:NSMakeRange(range.location + 4, 11)];
NSString *urlStr = [NSString stringWithFormat:@"tmall://tmallclient/?{\"action\":\"item:id=%@\"}", productID];
NSURL *newUrl = [NSURL URLWithString:[urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
[[UIApplication sharedApplication] openURL:newUrl options:@{} completionHandler:nil];
}
// 京东
else if([self canGoToJingDongDetail:url]) {
if([[url absoluteString] rangeOfString:@"item.jd.com"].location != NSNotFound) {
NSRange range = [[url absoluteString] rangeOfString:@"item.jd.com/"];
NSString *productID = [[url absoluteString] substringWithRange:NSMakeRange(range.location + 12, 7)];
NSString *urlStr = [NSString stringWithFormat:@"openApp.jdMobile://virtual?params={\"category\":\"jump\",\"des\":\"productDetail\",\"skuId\":\"%@\",\"sourceType\":\"homefloor\",\"sourceValue\":\"4384\",\"landPageId\":\"jshop.cx.mobile\"}", productID];
NSURL *newUrl = [NSURL URLWithString:[urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
[[UIApplication sharedApplication] openURL:newUrl options:@{} completionHandler:nil];
}

if([[url absoluteString] rangeOfString:@"jd.com"].location != NSNotFound && [[url absoluteString] rangeOfString:@"/item/"].location != NSNotFound) {
NSRange range = [[url absoluteString] rangeOfString:@"/item/"];
NSString *productID = [[url absoluteString] substringWithRange:NSMakeRange(range.location + 6, 7)];
NSString *urlStr = [NSString stringWithFormat:@"openApp.jdMobile://virtual?params={\"category\":\"jump\",\"des\":\"productDetail\",\"skuId\":\"%@\",\"sourceType\":\"homefloor\",\"sourceValue\":\"4384\",\"landPageId\":\"jshop.cx.mobile\"}", productID];
NSURL *newUrl = [NSURL URLWithString:[urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
[[UIApplication sharedApplication] openURL:newUrl options:@{} completionHandler:nil];
}
}
else {
// 跳转至 webView
}


- (BOOL) canGoToTaoBao:(NSURL *)url {
NSString *urlStr = [url absoluteString];
if([urlStr rangeOfString:@"taobao.com"].location != NSNotFound) {
NSURL *schemeUrl = [NSURL URLWithString:@"taobao://"];
if ([[UIApplication sharedApplication] canOpenURL:schemeUrl]){
return YES;
}
}
return NO;
}

- (BOOL) canGoToTianMaoDetail:(NSURL *)url  {
NSString *urlStr = [url absoluteString];
if([urlStr rangeOfString:@"tmall.com"].location != NSNotFound && [urlStr rangeOfString:@"&id="].location != NSNotFound) {
NSURL *schemeUrl = [NSURL URLWithString:@"tmall://"];
if ([[UIApplication sharedApplication] canOpenURL:schemeUrl]){
return YES;
}
}
return NO;
}

- (BOOL) canGoToJingDongDetail:(NSURL *)url  {
NSString *urlStr = [url absoluteString];
if([urlStr rangeOfString:@"item.jd.com"].location != NSNotFound) {
NSURL *schemeUrl = [NSURL URLWithString:@"openApp.jdMobile://"];
if ([[UIApplication sharedApplication] canOpenURL:schemeUrl]){
return YES;
}
}
if([urlStr rangeOfString:@"jd.com"].location != NSNotFound && [urlStr rangeOfString:@"/item/"].location != NSNotFound) {
NSURL *schemeUrl = [NSURL URLWithString:@"openApp.jdMobile://"];
if ([[UIApplication sharedApplication] canOpenURL:schemeUrl]){
return YES;
}
}
return NO;
}


附:

京东相关跳转协议:https://www.china-7.net/view-486463.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: