最近涉及的一个业务,在app内的一个广告,点击打开webView,加载的是一个淘宝商品详情页,效果是打开该webView自动跳转至淘宝对应的页面,同时在自己的app仍然加载页面,点击评论等也同样能跳转至淘宝客户端

经过拦截该网页,得出一个结论,如果是需要跳转,淘宝都会调用一个tbopen开头的地址,这样那就简单了,以下直接贴代码

1、第一步:info.plist添加白名单

这里经过反复测试,发现淘宝自定义跳转协议只有tbopen,所以我猜测淘宝客户端肯定添加了tbopen这样一个url scheme,所以我们只要加这个白名单就有直接跳转的能力了

(当然你也可以加taobao这个白名单,那对应的你的openURL就需要自己拼接,例如 taobao://m.taobao.com/tbopen/index.html?action=ali.open.nav&module=h5&bootImage=0&source=sb&appkey=24585446&smbSid=f6CPFcarHDsCAbcPsILVPbbX_1561013627944&rbbt=bc.mainDetail.0.2.122bef3b90e447e199100ff5550b9c4d&params=%7B%22fid%22%3A%22ckN4GzSh9iL%22%2C%22mtopCostTime%22%3A%22163%22%2C%22uiKey%22%3A%22%2Falbum%2Flist.htm%22%2C%22_t%22%3A%221561013656447%22%7D&h5Url=https%3A%2F%2Fh5.m.taobao.com%2Fawp%2Fcore%2Fdetail.htm%3Fid%3D590575701816%26point%3D%25257B%252522from%252522%25253A%252522h5%252522%25252C%252522h5_uid%252522%25253A%252522f6CPFcarHDsCAbcPsILVPbbX%252522%25252C%252522ap_uri%252522%25253A%252522sb_redirect_manual%252522%25252C%252522page%252522%25253A%252522mainDetail%252522%25252C%252522callType%252522%25253A%252522scheme%252522%25257D

2、第二步:拦截tbopen关键字,处理对应的业务逻辑

- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler{

    NSURL *requestUrl = navigationAction.request.URL;

    if ([navigationAction.request.URL.scheme containsString:@"tbopen"]) {//拦截tbopen开头的url
if ([[UIApplication sharedApplication] canOpenURL:requestUrl]) {//能打开手机淘宝APP
[[UIApplication sharedApplication] openURL:requestUrl];// 打开淘宝app
}
}
decisionHandler(WKNavigationActionPolicyAllow);
}

ok,经过上面的两歩之后我们就不需要考虑其他东西了,这也是经过淘宝开发人员和产品设计多年迭代出的作品,应该考虑还是比较全面的,所以稍微观察一下规律按照他们的规则来就好了

注:经过多次测试发现并不是每次打开webView都会调用tbopen开头的url,但第一次一定会,这个影响不大,具体原因还没深入研究,如有不对之处,欢迎指正

iOS app url scheme跳转到淘宝商品详情页 唤醒app的更多相关文章

  1. 仿淘宝商品详情页上拉弹出新ViewController

    新项目就要开始做了,里面有购物那块,就试着先把淘宝商品详情页的效果做了一下. 1.需求 1.第一次上拉时,A视图拉到一定距离将视图B从底部弹出,A视图也向上 2.显示B视图时下拉时,有刷新效果,之后将 ...

  2. 第十二篇、OC_仿淘宝商品详情页的翻页

    // // GFBProductViewController.m // elmsc // // Created by MAC on 2016/11/26. // Copyright © 2016年 G ...

  3. android仿京东、淘宝商品详情页上拉查看详情

    话不多说,直接上干货,基本就是一个scrollview中嵌套两个scrollview或者webview;关键点事处理好子scrollview和父scrollview的触摸.滑动事件已达到想要的效果.大 ...

  4. vue实现淘宝商品详情页属性选择功能

    方法一是自己想出来的,方法二来自忘记哪里看到的了 不知道是不是你要的效果: 方法一:利用input[type="radio"] css代码: input { display: no ...

  5. 仿京东淘宝商品详情页属性选择js效果

    在网上找了好久发现都不符合要求就自己摸索写了一个,用到了linq.js这个linq to js 扩展,不然用纯JS遍历json查询要死人啊 demo:http://123.207.28.46:8086 ...

  6. Vue实现仿淘宝商品详情属性选择的功能

    Vue实现仿淘宝商品详情属性选择的功能 先看下效果图:(同个属性内部单选,属性与属性之间可以多选) 主要实现过程: 所使用到的数据类型是(一个大数组里面嵌套了另一个数组)具体格式如下:   attrA ...

  7. 淘宝商品html--网页结构

    淘宝商品html--网页结构 本篇爬虫紧接上一篇关于 泸州老窖 的爬虫随笔: import re import json def get_space_end(level): return ' ' * ...

  8. Android开发案例 - 淘宝商品详情

    所有电商APP的商品详情页面几乎都是和淘宝的一模一样(见下图): 采用上下分页的模式 商品基本参数 & 选购参数在上页展示 商品图文详情等其他信息放在下页展示 知识要点 垂直方向的ViewPa ...

  9. 抓取天猫和淘宝的详情页图片|Golang

    taobao.go package main import ( "crypto/md5" "encoding/hex" "fmt" &quo ...

随机推荐

  1. z作业二总结

    这是我的第二次作业,之前在课上所学的我发现已经忘得差不多了,这次的作业让我做的非常累,感觉整个人生都不太好了. 作业中的知识点:int(整型) float(单精度) double(双精度) char( ...

  2. Educational Codeforces Round 13——D. Iterated Linear Function(矩阵快速幂或普通快速幂水题)

      D. Iterated Linear Function time limit per test 1 second memory limit per test 256 megabytes input ...

  3. [BZOJ1592] [Usaco2008 Feb]Making the Grade 路面修整(DP)

    传送门 有个结论,每一个位置修改高度后的数,一定是原来在这个数列中出现过的数 因为最终结果要么不递增要么不递减, 不递增的话, 如果x1 >= x2那么不用动,如果x1 < x2,把x1变 ...

  4. 【leetcode最短路】818. Race Car

    https://leetcode.com/problems/race-car/description/ 1. BFS剪枝 0<=current position<=2*target.为什么 ...

  5. Spoj-FACVSPOW Factorial vs Power

    Consider two integer sequences f(n) = n! and g(n) = an, where n is a positive integer. For any integ ...

  6. 【jquery创建元素添加元素】

    使用jquery创建新元素的方法为:$(html标签),例如 $("<p></p>")创建了一个段落.注意此时只是创建了对象,尚未添加到文档节点中去:以下四 ...

  7. 观光公交(codevs 1139)

    题目描述 Description 风景迷人的小城 Y 市,拥有n 个美丽的景点.由于慕名而来的游客越来越多,Y 市特意安排了一辆观光公交车,为游客提供更便捷的交通服务.观光公交车在第0 分钟出现在1号 ...

  8. docker镜像mac下保存路径

    mac下docker的镜像保存位置: /Users/{YourUserName}/Library/Containers/com.docker.docker/Data/com.docker.driver ...

  9. jquery的固定定位效果

    今天做了个固定定位的效果.比如对导航需要进行固定定位效果: 当没有滚动到导航下面,导航正常显示. 当滚动到导航下面,导航就固定到顶部. 这个效果使用了jquery的方法实现,具体思路为: 1)首先获取 ...

  10. HDFS api操作

    import java.net.URI;import java.util.Iterator;import java.util.Map.Entry; import org.apache.hadoop.c ...