极简移动端浏览器方案解析:无地址栏设计与跨时空App深度应用

前两天,群里有个兄弟问了一个问题,我第一眼看过去觉得挺无语的,但想了想,又觉得特别有意思。

他问的是,有没有那种,没有地址栏的浏览器。

就是那种,打开就是网页,顶部没有那一长条输入网址的地方,底部也没有返回刷新那一排按钮,干干净净,就一个页面铺满屏幕。

我当时第一反应是,哥们你用Safari不好吗,点一下隐藏工具栏不就完了。

他说不是,他要的是,彻底没有。不是隐藏,是从根上就没有那个东西。因为他想拿手机当一个展示屏,长期挂着一个网页,不想让人看到地址栏,也不想让人手贱去点,输入个什么乱七八糟的网址跳到别的地方去。

我寻思了一下,这需求听着小众,但其实不小众。

你想想看,拿个旧手机当家里的数据看板,挂个天气页面放桌上,店里弄个展示屏循环播一个H5,给老人配一个手机只让他打开一个固定的新闻站,甚至你就是想躺在被窝里看长文的时候,不想被那一排按钮分心。

这些场景,全都需要一个东西,一个「只有页面、没有框」的浏览器。

于是我就去扒了一圈。

这一扒不要紧,我发现这事儿比我想的水深。

图片

先说一个我扒完之后最意外的结论。

市面上,没有任何一款浏览器,能做到永久彻底禁用地址输入功能。

一个都没有。

我一开始也不信,翻了半天,后来想通了。这玩意是安全逻辑,不是产品逻辑。你想想,如果一个浏览器连输入网址的地方都不给你留,那你就被锁死在它给你预设的那些页面里了,这跟绑架没区别。所以不管UI藏得多深,系统层面一定会给你留一个口子,让你能输入地址、能跳转。

所以我们要找的,不是「禁用地址栏」的浏览器,而是「默认不显示、日常看不到、需要的时候才冒出来一下、用完立刻消失」的浏览器。

这是两码事。

搞清楚这个区别之后,事情就好办多了。

先说iOS。

iPhone上我扒到三个路子,一个比一个狠。

第一个,叫Pane Browser。

这玩意我第一眼看到截图的时候,有点被惊艳到。它真的,整个屏幕就是网页,顶部没有地址栏,底部没有工具栏,什么都没有。只有一个可以拖来拖去的小圆点,悬浮在屏幕边缘。

你点一下这个小圆点,它会弹出一个径向菜单,就是那种从圆点往四周散开的扇形菜单,里面有返回、首页、更多,还有两个槽位你自己定义。拖动这个小圆点,它会自动吸附到屏幕左边或右边,不会挡着你看内容。从左边缘往右滑,能回到上一页,还带一个Safari风格的视差预览,上一页会从左边滑进来。

它还有一个四宫格的起始页,放你最常去的四个站。

我看完它的介绍,第一感觉是,这哥们是真的在想「怎么把浏览器做到看不见」。它基于苹果的WKWebView,跟Safari同一个引擎,所以页面渲染效果跟你平时用Safari看是一样的,不会有那种奇奇怪怪的兼容问题。

隐私这块也挺干净,没有账号体系,不签到不追踪,书签和历史全存本地,默认搜索引擎是Bing,说是全球不用梯子也能搜。你要是不爽可以换Google或者DuckDuckGo。

适合什么人呢,适合那种就固定看几个站、想要沉浸式阅读的人。你把常去的几个页面往起始页一放,平时打开就是看,想输入网址的时候从那个小圆点里掏,用完它自己缩回去。

挺优雅的。

图片

第二个,叫FullFrame Browser。

这个比Pane还要简单粗暴。它的slogan就一句话,浏览不带杂乱。

它干的事是这样的,你一打开网页,所有工具栏自动隐藏,网页直接铺满整个屏幕,edge to edge,从上到下,一个像素都不浪费。

那我要用工具栏怎么办?

双指轻点屏幕,工具栏瞬间出来。再双指轻点,瞬间消失。

就这一个手势。

我试了一下这个交互,说真的,有一种很奇怪的爽感。就是你平时看页面的时候,屏幕上干干净净,突然你想点个返回,两根手指一碰,按钮就来了,用完一碰,又没了。像变魔术一样。

它也支持标签页、无痕模式、书签、历史、下载,该有的都有,还支持调用摄像头麦克风和定位,还有一个细节我觉得挺贴心的,它能保持屏幕常亮,这个对于拿手机当展示屏挂着的场景,简直是刚需。

FullFrame比Pane更「傻」一点,Pane好歹给你一个悬浮按钮随时能点,FullFrame连按钮都不给你,全靠手势。但也正因为这样,它更纯粹,屏幕上真的什么都看不到。

图片

第三个路子,不是App,是系统自带的,零安装。

PWA。

这个我觉得是很多人忽略的一个神器。你用Safari打开一个支持PWA的网页,点分享按钮,选「添加到主屏幕」。完事。

之后你从主屏幕点那个图标启动,它会在一个独立窗口里运行,没有地址栏,没有搜索栏,没有Safari那一堆底部工具栏,就是一个干干净净的全屏页面,跟一个原生App长得一模一样。

你甚至可以在多任务界面里看到它是独立于Safari存在的一个窗口,有自己的卡片。

这个方案的优点是,零安装,零成本,系统级支持,体验最接近原生App。缺点也明显,那个网页本身得支持PWA,得有manifest文件,不然你添加到主屏幕之后它还是个Safari的快捷方式,打开还是带地址栏的。另外你没法自定义跨域、没法改UA、没法塞调试参数,它就是个黑盒,给你什么就是什么。

但如果你只是想,把一个固定的网页,用最干净的方式钉在手机上,PWA是成本最低的方案。

没有之一。

说到这,iOS的三条路子就聊完了。Pane适合要一点操控感的,FullFrame适合要极致干净的,PWA适合零成本固定展示的。

你如果关注这个领域的话,应该已经注意到了,这三个方案有一个共同的特点,它们都是「藏」,不是「删」。地址栏还在,只是你看不到,需要的时候它会出现。

这又回到了我前面说的那个结论。

安全逻辑。

图片

Android这边,路子不太一样。

安卓的开放性注定了它在这件事上玩法更多。

第一个,X浏览器。

这个我必须多说两句,因为我扒到它的时候,是真的有点佩服这个团队。

X浏览器的安装包,2MB。

你没看错,2MB。现在随便一个浏览器动不动几十上百兆,它2MB。我第一次看到这个数字的时候,愣了一下,然后去看了一眼它的实现说明,它说它尽量用操作系统的原生代码,很少用大型第三方框架和SDK,所以能做到这么小。

小带来的好处是,快。启动快,运行流畅,不占资源。

但小不代表弱。它内置广告拦截,原生支持油猴脚本,对,不用装Tampermonkey,直接装脚本就行,从Greasy Fork上一键安装。还能改UA,有视频嗅探功能,能发现并下载网页里的视频。

在「隐藏地址栏」这件事上,它给了你非常细的定制选项。你可以隐藏顶部地址栏,隐藏底部导航栏,配合手势操作,用书签快速访问站点。它把搜索栏都可以挪到底部,菜单也能定制,手势设置一大堆。

怎么说呢,它不是那种「我替你决定好长什么样」的浏览器,它是那种「你自己搭」的浏览器。你想要极简,你就把能藏的全藏了,留几个手势,留一个书签页,剩下的全是网页。

对开发者友好,对喜欢折腾的人友好。

图片

第二个,Alook浏览器。

Alook的名气比X浏览器大不少,一度被叫做「每个苹果手机都应该拥有的浏览器」,当然它也有安卓版。

它的slogan是极简且强大。23MB,毫秒级启动,无推送无新闻无广告。

它有一个全屏模式,滑动隐藏工具栏,也能设置手势唤出地址栏。功能是真的强大,视频悬浮小窗、倍速播放、针对单个网站单独设置广告拦截和无图模式、夜间模式,一堆东西。

但坦率的讲,在「极致极简」这件事上,Alook不是最纯粹的。它的默认UI其实挺丰富的,功能按钮很多,你要全屏沉浸式体验,得自己手动去配置,把那些控件一个个藏起来。

所以我的感受是,Alook更像一个「功能全面的瑞士军刀」,你想要极简可以调到极简,但它出厂状态不是极简的。如果你是那种喜欢先把所有功能都摸一遍、再决定留什么藏什么的人,Alook很合适。如果你一上来就想要一个开箱即极简的东西,X浏览器可能更对味。

安卓这边就先聊这两个。当然还有别的路子,比如你自己拿WebView封装一个壳子,就加载一个固定URL,连菜单都不给,那是最彻底的。但那个就不是普通用户能干的事了,得写代码。

图片

说到这,我以为这事就聊完了。

iOS三个方案,安卓两个方案,选一选就完了嘛。

直到我又翻到了一个东西。

这个东西让我意识到,前面聊的那些浏览器,不管多极简,本质上都还是「浏览器」。它们都遵循浏览器的那套规则,同源策略、CORS跨域拦截、HTTPS证书校验,一个都跑不掉。

而我翻到的这个东西,不是浏览器。

它是一个WebView容器。

叫跨时空。

我第一次看到它的时候,没太当回事,以为又是一个套壳浏览器。后来仔细看了一眼它的原理,我改主意了。

跨时空的底层,iOS上是WKWebView,安卓上是原生WebView,Chromium内核。跟Pane、FullFrame、X浏览器用的是同一套渲染引擎。但区别在于,它在WebView外面,包了一层自己的原生代码。

这层原生代码干了一件别家浏览器都不干的事。

跨域拦截代理。

我解释一下这是什么意思。

你平时用浏览器打开一个网页,这个网页里有一段JS代码,想用fetch去请求另一个域名下的接口。浏览器一看,你这页面是a.com的,你要请求b.com的数据,不同源,拦掉。这就是CORS,跨域资源共享策略,浏览器的安全铁律。

普通浏览器,包括Safari、Chrome、Pane、FullFrame、X浏览器,全都遵循这个规则。你的页面跨域了,请求就失败,没得商量。你要解决,要么后端配CORS头,要么你自己搭个代理服务器。

跨时空不这么干。

它的逻辑是这样的。它监听WebView内部的请求失败事件,判断这个失败是不是因为CORS跨域被拦了。如果是,它就把这个请求的方法、header、body、目标URL,全部拿出来,交给App自己的原生HTTP客户端去发。

原生代码不受浏览器同源策略限制。

请求成功之后,它把响应结果回填给网页里的JS。

对网页来说,就好像这个请求从来没失败过一样。

页面上偶尔会出现一个隐约的加载菊花,那个就是原生代理在跑。

我看到这个机制的时候,第一反应是,这尼玛不就是移动端的代理服务器吗,但它把代理这件事做到了用户无感。

这还没完。

它还能关闭SSL证书校验。

你想想这意味着什么。你在内网搭了个测试服务,用的自签名HTTPS证书,浏览器一看证书无效,直接红屏拒绝。你用普通浏览器,没辙,要么花钱买正规证书,要么把服务改成HTTP。但在跨时空里,关掉SSL校验,自签名证书照常访问。

还能自定义UA,Cookie持久化,自定义缓存策略。

我跟你讲,这玩意对前端开发者来说,是神器。

你想想这个场景。你周末在家,手机上调试一个H5页面,接口跨域了,证书是自签的,普通浏览器全趴窝。以前你得开电脑,连VPN,配代理,折腾半天。现在掏出手机,打开跨时空,跨域自动代理,证书校验关掉,直接跑。

三十秒搞定。

而且它的UI也做到了「看起来没有地址栏」那个效果。页面渲染区铺满屏幕,地址输入框不是常驻组件,平时你看不到它,需要输网址的时候,弹一个临时输入框,加载完之后弹窗立刻消失。浏览状态下,视觉上就是干干净净一个页面。

所以你看,跨时空其实同时干了两件事。一件是「把地址栏藏起来」,跟Pane、FullFrame它们一样。另一件是「在WebView层做原生代理」,这个是它独有的,别的极简浏览器都做不到。

如果你只是想沉浸式阅读,Pane和FullFrame就够了。但如果你是前端,你要调试,你要跨域,你要碰内网的HTTPS,跨时空是目前我看到的唯一一个能把这几件事一次性解决的。

比较骚的事,它还能在WebView层注入调试工具,绕过CSP策略。什么意思呢,就是GitHub那种安全等级很高的站点,你用油猴脚本注入JS会被CSP拦掉,控制台全是红字。但跨时空是在WebView底层注入的,不经过网页那层安全机制,所以你在GitHub上也能正常调试。Network、Cookie、LocalStorage、DOM、控制台,全在右下角一个小图标里。

这个我确实没想到。

图片

聊到这,我顺手把几个方案捋一遍,你根据自己的需求对号入座就行。

日常沉浸式阅读、固定看几个站,iOS用Pane Browser或者PWA,安卓用X浏览器调全屏。

前端调试、要跨域、要碰内网HTTPS,用跨时空。

想要零控件、单一网页长期挂机展示,把那个网页做成PWA,添加到主屏幕,最干净。

如果你要问我个人偏好,怎么说呢,我比较贪。我日常看东西用Pane,那种悬浮小圆点的交互用习惯了还挺上瘾的。但真要干活调试的时候,跨时空是唯一的选择,因为别的都解决不了跨域那个死结。

图片

写到最后,我突然想到一个东西。

你有没有发现,地址栏,其实是普通人这辈子,最后一条还在用的命令行。

你想想看。

早年间用电脑,所有人都要敲命令行,DOS那个光标一闪一闪的,你输一条路径,回车,进去。后来有了图形界面,鼠标点点点,命令行消失了,变成了程序员专属的东西,普通人再也不碰了。

但浏览器里那一条地址栏,它就是一个命令行。

你输入一个路径,www什么什么.com,回车,浏览器去那个地址把东西拿回来给你看。这不就是cd到一个目录然后ls吗,只不过它把这件事包装得特别好看,你不觉得自己在敲命令。

而我们现在聊的这一切,把地址栏藏起来、删掉、让它消失,说到底,是在做一件事。

把普通人最后一条命令行,也擦掉。

我有时候觉得这事挺矛盾的。一方面,界面越来越干净,体验越来越好,你不用记网址,不用输路径,点一个图标就到了。另一方面,那个「你输入一个地址、它去帮你取东西」的过程,正在被悄悄抹去,变成一个你看不见的黑盒。

你不再知道你去了哪里。

你只知道你点了一下,东西就来了。

我不知道这是好事还是坏事。

但我知道一件事,只要还有人想知道「我打开的到底是什么」,地址栏就不会真的消失。它只是换了个地方藏着,等那个想找它的人。

就像那个在群里问问题的兄弟。

他要的不是没有地址栏,他要的是,地址栏别来烦他。但他心里清楚,那个入口,得一直在。

磨平一些信息差,哪怕只是很小很小的一点,那我也觉得,我做了一些正确的事。

注意,本项目仅在 SyncMein 的500人小群分享。
加微入群,谢谢你看完了我的文章,我们下次再见吧。

/ 作者:明察
/ 投稿或爆料,请联系邮箱:mingcha@gqmg.com


© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容