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

论坛 期权论坛 脚本     
匿名技术用户   2020-12-22 10:36   11   0

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


分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP