[关闭]
@jean 2015-12-11T17:40:52.000000Z 字数 2916 阅读 3578

App 逛街页面问题攻坚

App 逛街 URL_Scheme



文档改动

ID 时间 改动 讨论者
1 2015.12.9 11:25AM URL Schemes 增加了屏蔽 App Store 的部分 (最底下) -
2 2015.12.9 11:35AM 次选方案 中增加了后台控制黑名单的要求 -
3 2015.12.9 11:50AM 补充了 关于中转重定向 问题的处理 -

1. 问题简介

App 上现在遇到这么两个问题:


2. iOS 9 跳转提示

此处输入图片的描述

2.1 跳转提示的实现原理

以个人在 iOS 效率软件的使用经验来看, 这应该是 iOS 9[1] 设备上各种加载/点击事件上增加了一个打开 URL Scheme 的 action. 由于没有安装 App 的话无法跳转, 因此对方页面开发时不需要考虑判断, 当然 Apple 也不允许 App 和网页读取用户设备安装了什么 App.

在一个专门使用 URL Scheme 打开其他 App 的工具 Launch Center Pro 上试着打开天猫和京东时, 弹出的提示和上面相同:
此处输入图片的描述

淘宝在之前的测试中已经点击过 Open, 忘记截屏了.
这是 试图打开京东 的时候.


2.2 跳转提示的负面影响


2.3 弹出时机简单调研结果

2.3.1 打开页面时提示 "Panli代购"想要打开"手机淘宝/天猫/···"
ID 逛街页面 弹出时机 复现概率 弹窗频率
1 淘宝 打开一个天猫商品 必定出现 每次都出现
2 淘宝 打开一个淘宝商品 安装 App 后第一次打开时必定出现 一段时间内只出现一次
3 淘宝 点击 物流/购物车/我的淘宝 安装 App 后第一次打开时必定出现 一段时间内只出现一次
4 淘宝 点击 更多 必定出现 每次都出现
5 天猫 点击天猫 广告栏 必定出现 每次都出现
6 天猫 点击商品 必定出现 每次都出现
7 天猫 点击分类 必定出现 每次都出现
8 天猫 基本上点击任何页面元素 必定出现 每次都出现
9 京东 点击 引导下载栏1 必定出现 每次都出现
10 京东 点击 引导下载栏2 必定出现 每次都出现
2.3.2 URL Schemes
  1. 2015.12.7 时有效
  2. 手机淘宝
  3. taobao://
  4. 手机天猫
  5. tmall://
  6. 手机京东
  7. openApp.jdMobile://
  8. 蘑菇街
  9. mogujie://
  10. 美丽说
  11. meilishuo://
  12. 当当
  13. dangdang://
  14. 阿里巴巴
  15. 未知, 反正不是 ali://、alibaba:// 和 1688://
  16. 什么值得买
  17. smzdm://
  18. App Store
  19. https://appsto.re/
  20. https://itunes.apple.com/
2.3.3 跳转条件

由于要跳转到各 App, 当然是要安装了这些 App 之后才能跳转, 恐怕在 Chrome 上没有办法模拟该情况.


2.4 几种方案

2.4.1 首选方案

在 App 逛街模块内, 屏蔽任何 App 跳转 (包括 App Store), 不仅仅只屏蔽上面几个 URL Scheme, 一劳永逸解决此问题, 就像微信 (不是用黑名单屏蔽个别 URL Scheme, 而是只开放白名单, 并且白名单现在不开放任何 URL Scheme).

  • 每个 App 的 URL Scheme 都是可以改的, 只要没有和其他已有的冲突;
  • 有些 App 有一个以上的 URL Scheme;
  • 黑名单后期维护工作太大, 而且因为上面的原因可能无法真正完美解决问题
2.4.2 次选方案

通过黑名单暂时屏蔽掉 上面列出的 URL Scheme, 暂时解决问题.

如果一定要用次选方案来实现, 需要做到黑名单可后台控制, 而不是每次 App 发新版本的时候改动.

2.4.3 关于中转重定向

此需求中只要求屏蔽可跳转的 URL, 对于那些先打开自家页面然后重定向到 App Store/自家 App 的情况, 只需要不弹出提示/不跳转即可, 页面是否停留在空白的中转页问题不需要考虑.

一方面不知道有多少中转页面, 另一方面我们也不可能将平台域名整个屏蔽.

3. 浮动栏

此处输入图片的描述

3.1 需要阻挡部分

ID 示例页面 需要屏蔽部分位置 更新时间
1 淘宝首页 搜索栏下方 2015.12.8
2 淘宝商品详情页 状态栏下方、客服/收藏/店铺/加入购物车/立即购买 2015.12.8
3 天猫首页 基本算是底部, App 里没能复现, Chrome 打开时截的图 2015.12.8
4 天猫商品详情页 tab 栏下方、客服/收藏/店铺/加入购物车/立即购买 2015.12.8
5 京东首页 状态栏下方 2015.12.8
6 京东商品详情页 状态栏下方、关注/购物车/加入购物车/立即购买 2015.12.8
7 蘑菇街首页 页面最下方 2015.12.8
8 蘑菇街商品详情页 状态栏下方、私聊/喜欢/加入购物车/立即购买 2015.12.8
9 美丽说首页 状态栏下方 2015.12.8
10 美丽说商品详情页 首页/客服/喜欢/加入购物车/购买 2015.12.8
11 当当首页 状态栏下方 2015.12.8
12 当当商品详情页 加入购物车/立即购买/购物车 2015.12.8
13 阿里巴巴首页 状态栏下方 2015.12.8
14 阿里巴巴商品详情页 页面下方 (两部分) 2015.12.8

3.2 阻挡功能说明

3.2.1 引导下载栏

此处输入图片的描述

3.2.2 购买功能栏

此处输入图片的描述

3.2.3 App 商品详情界面中的买家评价部分

此处输入图片的描述



[1] iOS 9 以前, URL Scheme 不规范, 导致会发生劫持的情况. 比如说用户想用支付宝买个东西, 在 App 跳转到支付宝的时候, 跳转到的 App 可能不是支付宝, 而是其他恶意劫持的 App. Apple 为了防止这种情况大规模影响用户, 就在最新系统上作出一套新 URL Scheme 规范 openURL, 并且用户在第一次跳转前会知道将要跳转到的 App. 简单来说, 这是一套新的规范, 而不是 Bug. 点击 这里 了解更多.
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注