如果在网页里加上<meta name="apple-mobile-web-app-capable" content="yes">,用 Safari 把这个网址“添加到主屏幕”,再点击创建的图标,网页会以全屏模式打开,就像一个独立的 APP。
前几年我曾试图用这种方式把 m.weibo.cn 添加到主屏幕,以取代微博 APP。但发现每次打开都会要求登录。当时还以为是微博的 Bug。后来才知道其实是 Safari 的特性。Safari 在这种模式下不会保存 Cookie。这种模式下也不能访问普通模式下同一网页的 Cookie。
我当时没想明白苹果为什么要这么设计。首先这肯定是给用户添堵,从安全角度也看不出什么意义。当然,那会儿我很少从商业角度想问题。最近我又想起这事儿,一拍大腿——如果不在 Cookie 上恶心一下,这不就等于提供了一种绕过苹果应用商店生态的手段嘛!
-----------------
除了 Cookie,还有三种可以长期存储认证凭据的机制:localStorage、IndexedDB、Cache API。评论中已经有网友说他试过 localStorage 也不行。那么不知道 IndexedDB、Cache API 有没有幸免?还是说苹果直接给 Web App 状态用了无痕模式……