deeplink结合路由处理扩展App的能力

开始学习移动端开发是一个正确的选择,点了一颗新的技能树,扩展了知识和能力体系。下面是最近的关于路由处理和deeplink的感想。

通常情况下,如果想要服务端触发一些App的行为,那么我们选择的是通过某个约定的code,App检测到之后,就作出一定的响应。例如:

  • 当检测到响应为401时,我们在App端的行为可能是重新登录,如果是500,可能会发一个提示出来,这是对于所有响应体的一个处理
  • 当返回结果中,有一个字段为 code,且约定的code为多少时,则进行一些特殊的业务处理

但是,是否有办法将两者结合?也就是说,在所有的响应结果里,我们都加一个中间件来处理,这里既可以处理通用错误,也可以 处理业务错误。包括可以把一些常用的操作抽象出来,放到里面统一处理,这样子服务端就可以对App做一些控制,例如:

  • 给用户发个提示信息
  • 当用户版本过低时,给用户发一个alert
  • 当检测到用户为非安全登录时,将非安全设备下线
  • 跳转到某个特定的页面
  • … 等等

App端将这些常见操作统一写在路由处理函数里,我们称之为路由中心。同时,结合deeplink,那么应用的能力将会进一步扩展, 我们可以从网页上唤起App,比如国内很多网页,都会有一个 “在App里查看” 的按钮。

将路由处理函数和deeplink处理函数进行统一,就可以打通App和web之间的界限,比如可以直接从某一个网页唤醒App,如 用户验证邮箱/更改密码后,网页直接唤起App并且刷新用户信息,这样就不需要用户在点击验证完邮箱之后,手动去打开App,App 也不需要去轮询是否已经更改完邮箱,在用户体验上更好,减少了用户操作的步骤,更有利于用户留存。


更多文章
  • gevent不是黑魔法(二): gevent 实现
  • gevent不是黑魔法(一): greenlet 实现
  • 用 entgo 替代 gorm
  • 应用内使用crontab不是那么方便
  • 单测时要不要 mock 数据库?
  • Sentry 自建指南
  • 用selenium完成自动化任务
  • 用闲置的安卓手机做垃圾电话短信过滤
  • 推荐三个时间管理工具
  • 一次事故反思
  • 当JS遇到uint64:JS整数溢出问题
  • SQLite3 存储以及ACID原理
  • Redis源码阅读:pub/sub实现
  • Redis源码阅读:zset实现
  • Redis源码阅读:bitmap 位图的运算