游客发表
把网页塞进一个壳里,网站再挂到应用商店,网站这就是网站很多人理解的“网站转App”。我见过最离谱的网站例子:一个电商网站,套了个WebView壳,网站启动时先白屏三秒,网站然后弹出一句“网络异常请重试”——其实网好得很,网站是网站壳里加载的H5页面自己卡住了。用户骂声一片,网站开发者还委屈:我明明转了啊。网站
问题出在“转”这个字。网站网站是网站给浏览器用的,App是网站给手机操作系统用的。两者的网站运行环境、交互逻辑、网站性能预期完全不同。你直接把网页地址丢进WebView,等于让一个习惯坐办公室的人去跑马拉松,鞋都没换。
真正可用的网站转App,至少得做三件事。第一,剥离浏览器外壳。地址栏、前进后退按钮、书签栏,这些在App里全是累赘。用户打开你的App,不是来逛网页的,是来完成某个具体任务的。第二,处理导航。网页的导航靠链接跳转,App的导航靠页面栈。你得把链接映射成原生页面跳转,否则用户按返回键会直接退出App,而不是回到上一页。第三,离线能力。网页断网就废,App至少得让用户看到缓存内容,或者给个像样的错误页。
我试过一个工具叫GoNative,它能把网站打包成App,还提供原生导航栏、下拉刷新、离线缓存。听起来省事,但用起来还是别扭。比如网站里的文件上传按钮,在WebView里调不起手机相册;网站里的支付流程,跳转到支付宝后回不来。这些坑,不写原生代码填不平。
另一个思路是PWA。渐进式Web应用,本质上还是网页,但能添加到主屏幕、能离线、能推送通知。安卓上体验接近原生,iOS上差点意思。我拿一个新闻网站试过,PWA版打开速度比WebView壳快一倍,因为Service Worker缓存了静态资源。但PWA没法上苹果应用商店,只能让用户手动“添加到主屏幕”。对很多公司来说,这等于没转。
那到底怎么转?我的判断是:内容型网站,比如博客、新闻、文档,用PWA就够了,别折腾App。交互型网站,比如电商、社交、工具,必须做原生或混合开发。混合开发的意思是,核心页面用原生写,次要页面用WebView嵌。比如电商App,首页、购物车、支付用原生,帮助中心、活动页用WebView。这样既保证体验,又降低维护成本。
有个做在线课程的朋友,一开始把整个网站塞进WebView,用户看视频卡顿、记笔记闪退。后来他把视频播放器改成原生,笔记功能改成原生,其他页面保留WebView。改完当天,应用商店评分从2.8涨到4.5。他跟我说:用户不傻,哪里卡他们知道。
最后说个细节。网站转App,别忘改状态栏颜色。很多壳应用状态栏是默认白色,网站头部也是白色,结果用户看不清时间。改一行代码的事,但没人做。这种小地方,才是“转”和“不转”的区别。
友情链接