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

配置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


  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值