ios app url scheme跳转到淘宝商品详情页 唤醒app

好的东西就应该大家一块分享。

今天项目中要求,类似于启动页是淘宝的广告,然后点击广告,跳转到淘宝的详情页。

实现这个要求我是各种百度,不过最后发现呢,大部分东西都是千篇一律。

第一种:只是提供了天猫的跳转,并没有提供淘宝的跳转。

第二种:就是使用阿里百川的sdk,这样的话对我我来说是觉得有点大材小用的毕竟只是一个广告页而已。

第三种:就是我通过不懈的努力,终于被我给发现了。

现在我就要记录下来。

- (void)showItemInTmall4iOS:(NSString *)itemId
{
    NSURL *url;
    if([itemId rangeOfString:@"detail.tmall."].location != NSNotFound)   //判断Url是否是天猫商品的链接
    {
        NSRange range = [itemId rangeOfString:@"id="]; //在URL中找到商品的ID
        if(range.location != NSNotFound)
        {
            NSString *productID = [itemId substringWithRange:NSMakeRange(range.location + 3, 11)];
            NSString *appUrl = [NSString stringWithFormat:@"tmall://tmallclient/?{\"action\":\"item:id=%@\"}", productID];
            url = [NSURL URLWithString:[appUrl stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
            if ([[UIApplication sharedApplication] canOpenURL:url])
            {
                // 如果已经安装天猫客户端,就使用客户端打开链接
                [[UIApplication sharedApplication] openURL:url];
            }
            else
            {
                //客户手机上没有装天猫客户端,这时启动浏览器以网页的方式浏览该商品。
                url = [NSURL URLWithString:[itemId stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
                [[UIApplication sharedApplication] openURL:url];
 
            }
        }
    }
}
 
- (void)showItemInTaobao4iOS:(NSString *)itemId
{
    // 构建淘宝客户端协议的 URL
    NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"taobao://item.taobao.com/item.htm?id=%@", itemId]];
     
    // 判断当前系统是否有安装淘宝客户端
    if ([[UIApplication sharedApplication] canOpenURL:url]) {
        // 如果已经安装淘宝客户端,就使用客户端打开链接
        [[UIApplication sharedApplication] openURL:url];
         
    } else {
        // 否则使用 Mobile Safari 或者内嵌 WebView 来显示
        url = [NSURL URLWithString:[NSString stringWithFormat:@"http://item.taobao.com/item.htm?id=%@", itemId]];
        //        [[UIApplication sharedApplication] openURL:url];
         
        [self tongwanWeb:url];
    }
     
}

 这样就可以了,简单大方。

-------

有同学反映说,为什么按照你的代码写了,但是不好使呢?

eeee,这个问题

要成功的实现跳转,你需要做的工作  还有 就是需要在plist文件里边的url 里边分别添加上 淘宝 跟天猫的url

分别是 CFBundleURLTypes     taobao - taobao   tmall://  - tmall:// 

还有就是需要在下边的

LSApplicationQueriesSchemes

taobao

tmall

果然 用心爱过的人不会忘,用心做过的程序记记也能记起来。

-----------跳转京东客户端

-(void)tojd:(NSString *)itemId{
    
    //这个是京东店铺的链接
//    https://jinjinshang.jd.com
    //这个是京东的商品链接
//    https://item.jd.com/4922289.html
//
//
//    方法1
//     URL详情页
    NSString *qianUrl  = @"openapp.jdmobile://virtual?params=%7B%22sourceValue%22:%220_productDetail_97%22,%22des%22:%22productDetail%22,%22skuId%22:%22";
    NSString *skuid = @"4922289";
    NSString *houUrl  =@"%22,%22category%22:%22jump%22,%22sourceType%22:%22PCUBE_CHANNEL%22%7D";
    NSString *urlString=[NSString stringWithFormat:@"%@%@%@",qianUrl,skuid,houUrl];
    NSURL *url=[NSURL URLWithString:urlString];
    [[UIApplication sharedApplication] openURL:url];
    
    
    

    
    // 判断当前系统是否有安装淘宝客户端
    if ([[UIApplication sharedApplication] canOpenURL:url]) {
        // 如果已经安装淘宝客户端,就使用客户端打开链接
        [[UIApplication sharedApplication] openURL:url];
        
    } else {
        // 否则使用 Mobile Safari 或者内嵌 WebView 来显示
        
        NSString *url = [NSString stringWithFormat:@"http://item.taobao.com/item.htm?id=%@",itemId];
        LSH5VC *vc = [[LSH5VC alloc]init];
        vc.webUrl = url;
        [self.navigationController pushViewController:vc animated:YES];
        
    }
    
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏DannyHoo的专栏

POST上传各种数据类型(包括图片)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/...

5682
来自专栏coding...

iOS开发实战-时光记账Demo 网络版效果分析客户端部分服务端部分Demo地址简书主页

user表 相反Tally与Users的关系就是:一对多

952
来自专栏一个爱瞎折腾的程序猿

个人项目框架搭建 -- Autofac简单使用记录

1052
来自专栏王大锤

SDWebImage源码阅读-第一篇

43612
来自专栏QQ音乐技术团队的专栏

React-Native 分包实践

对于很多在使用react-native开发应用的小伙伴们肯定都会遇到一个问题,功能越来越复杂,生成的jsbundle文件越来越大,无论是打包在app内发布还是走...

1.3K6
来自专栏谈补锅

UIApplication

1、UIApplication对象是应用程序的象征,每一个应用都有自己的UIApplication对象,而且是单列的

1233
来自专栏移动端开发

iOS 启动页后广告Demo

重点!       对于启动页后的广告,相信大家也都看到过很多很多的,比如我自己常看到的有 QQ音乐,爱奇艺了。你点击了APP,它会启动就会随之启动。。其实...

4428
来自专栏coding...

Objective-c 多线程操作 自定义NSOperation 模拟下载写在前面效果分析代码DEMO地址

使用多线程下载图片,使用内存缓存和磁盘缓存。 这里只为理解NSOperation及其派生类 真要应用到APP中 请下载成熟的第三方库

1266
来自专栏女程序员的日常

STM8S——Clock control(CLK)

1、主时钟源   有四种时钟源可以用做主时钟: (1)1-24MHz高速外部晶体振荡器(HSE) (2)最大24MHz高速外部时钟信号(HSE user-ext...

2621
来自专栏Core Net

IOS 使用 ZbarSDK 二维码扫描

4317

扫码关注云+社区

领取腾讯云代金券