关于 hybird APP,以及对微信应用号的猜想
从周一 Allen “突然” 登场化解公关危机,并为应用号的推广省下一笔营销预算之后,铺天盖地的自媒体都在谈论应用号,相关内容刷屏朋友圈。其实在我看来,应用号并没有什么新奇之处,也谈不上会颠覆应用商店,正如 Allen 所说:“微信一个小小的举动都会被无限放大”。
在我看来,所谓 “应用号”,实际上就是 Hybrid APP。
(本文只是猜测,并非官方发布的最终产品形态,我并不清楚它最终会以怎样优雅的方式呈现,不过微信总能给人带来惊喜……)
什么是 Hybrid APP?
通俗来讲,在通过各种应用商店安装的 APP(Native APP 原生应用)的某个页面添加一个 WebView(浏览器组件,类似于日常使用的浏览器),开发者会在原生 APP 代码里设置一个接口(用于响应网页传给原生 APP 的指令,以及发送原生 APP 给网页的指令)。以 iOS 系统为例,其结构如下:
由系统提供的控件 WKWebView(相当于常用的浏览器)加载一个网页。以 iOS 为例(很抱歉我已不再关注安卓,本文主要以 iOS 为例进行说明),通过 evaluateJavaScript 方法可在网页中执行 js 代码(js 是网页执行动作的一种编程语言,你也可以将其理解为一种特殊的“英语方言”)。通过 runJavaScriptAlertPanelWithMessage 等方法(此处不展开详述,开发相关内容可单独撰写多篇文章),能够响应网页中执行的 js 代码,从而实现网页调用手机系统原生接口的能力。概括如下:
为何有人会问:全部采用原生开发或者全部使用网页开发不就好了,为何要如此来回调用呢?
下面将详细阐述使用 Hybrid APP 的原因。
为什么要用 Hybrid APP?
当自媒体兴起时,大家都认为它会颠覆传统媒体,然而如今传统媒体只是淘汰了劣质部分,优质的传统媒体依然发展良好,且在自媒体领域取得出色成绩的,大多还是在传统媒体有影响力的人;网络视频出现时,人们觉得它会取代电视台,但如今电视台依旧运营正常,还增添了微信摇电视、微博互动、春晚红包等新奇玩法;电商火热时,多数人认为电商会让线下商场倒闭,可如今大街上各类零售店依旧林立,仍有很多人喜欢逛街;各种理财宝宝产品出现时,大家觉得互联网理财会击败银行,然而如今银行依旧在资金流方面占据垄断地位。人们似乎有一种“新鲜狂热症”,总觉得新事物能够完全颠覆旧事物,但实际上新事物最终会与旧事物融合并得到升华(例如“社会主义也能搞市场经济”)。
还记得 2014 年 10 月 29 日 HTML5 正式发布吗?当时铺天盖地的文章宣称 web app 将会取代 Native APP,但到了 2016 年,我们看到 Native APP 并未退出大众视野,相反,两者的混合版 Hybrid APP 逐渐受到开发者的青睐。
Hybrid APP 具有以下好处:
- 定制能力强:搭建一个原生应用的壳,能够定制和控制更多能力,不受限于浏览器(例如微信浏览器禁止下载功能,因此我们经常会看到各种提示打开网页和分享的蒙层)。
- 便于升级迭代:原生的壳包裹网页应用,便于进行升级迭代,不受应用商店繁琐审核流程和冗长审核时间的限制(如 App Store 的审核)。
- 减少开发资源投入:网页应用有利于减少开发资源的投入。与原生应用不同,原生应用的每一个小改动都需要 iOS 工程师和安卓工程师分别修改,而 Hybrid APP 则可避免这一问题。
- 快速恢复:当原生全量发布后出现问题,可能需要迭代新版本才能修复,而网页应用只需在自己的服务器上进行修改即可。
- 获得系统一级入口:可添加快捷方式到桌面,如同原生 APP 一样获得系统一级入口(安卓和 iOS 都可实现,只是目前微信在 iOS 上不提供该功能)。
- 节省手机空间:有需要时再加载,节省手机空间,避免因用户手机空间不足而放弃尝试应用。(这就好比不能因为家里空间狭窄而拒绝与他人交往,也没必要为了一次交往就立刻购买大房子,此时可以选择去酒店开房,用完即退)。
而寄生于微信的 Hybrid APP(或许可直接称为应用号)的好处又有所不同。由于它必须通过微信这个渠道才能间接获取手机系统原生的能力(如重力感应、GPS 定位、震动、通知等)。
因此,微信应用具有以下好处:
- 降低注册流程繁琐度:通过 OAuth2.0(一种授权登录方式,后续会专门撰写文章介绍,欢迎搜索我的微信号 jinkey - love)可以获取用户头像昵称,降低繁琐的注册流程。
- 减少用户流失:用户只需点击关注,即可快速与应用进行交互,无需等待下载原生应用的漫长过程。
- 降低开发成本:可以调用微信提供的 JSSDK,便捷地获取拍照、定位、弹窗提示、改变右上角菜单等能力,无需为自己的应用搭建原生的壳。对于个人开发者而言,只需掌握前端语言 JavaScript 即可,WeUI 框架现成可用,甚至无需自己编写 CSS 样式。
- 获得安全保障:原本应用需要考虑安卓、WP 和 iOS 客户端的安全问题,现在只需考虑网页本身的安全性。
然而,由于多了微信这个“中间环节”,微信应用也存在一些劣势:
- 业务冲突风险:若业务与腾讯有冲突,可能会出现“由于网页被过多用户举报,暂时无法打开”的情况,导致应用无法正常使用。
- 系统原生能力受限:获取系统原生能力受限于微信是否提供接口。例如,目前 JSSDK 不支持视频、室内定位、系统级通知、振动、获取加速度、获取手机系统信息、获取通讯录等功能。又如,若要在应用中添加吸底的输入框,但微信未提供获取弹出键盘高度的接口,输入框会被键盘遮挡,严重影响用户体验。
- 下载和保存受限:不能直接从微信执行下载操作,也不能将文件保存到手机本地。
- 内容保护不足:一些禁止复制和禁止截图的保护内容,在微信里都可以被复制,无法使用一些私有的加密逻辑。
- 审核要求高:可能需要工商营业执照审核等,对个人开发者不利。
- 授权繁琐:每次使用都需要提示授权,不像原生应用只需授权一次,后续即可直接使用。(当然,微信也可以提供一次授权和授权管理功能,但目前尚未实现)
- 广告投放受限:投放广告受限制,微信可能会因认为是营销行为而封禁应用。
- 大容量文件缓存困难:不能缓存大容量文件,如音乐、视频等。
- 用户流失严重:诱导用户将应用号添加到桌面成本高,且若微信不提供接口或有限制,可能无法放置在桌面。此时,桌面为一级入口,点开微信为二级入口,点开微信应用号聚合页为三级入口,点开应用使用某个功能为四级入口,基于漏斗模型,用户流失会相当严重。
应用号会怎么做?(推断)
- 搜索入口:微信搜索入口,类似于 Spotlight,甚至可能直接提供 Spotlight 系统级搜索,实现直达应用号的功能。
- 通知推送:基于服务号获得通知推送能力,将简介触达到系统通知中心。
- 聚合页入口:设置聚合页入口,类似于钱包(根据穷尽不重复原则,应该不会直接使用钱包,以免破坏用户认知)。
- 列表页:设置列表页展示应用号。
- 应用打开方式:应用直接打开 H5,类似于京东购物入口,或者基于聊天界面设计,底部按钮实现 tab 的功能。
- 控制系统原生接口:通过 JSSDK 让应用号获得控制系统原生接口的能力,但受限于微信开放的接口。微信不能随意开放接口,因为开放得越多,潜在的漏洞也就越多。
- 工作流:例如拍照、美化、发微博,原本可能需要打开两到三个 APP 才能完成。而微信可能提供接口,在拍照完的回调函数中调起美图网页版,编辑完图片的回调函数中调起微博并传过去美化后的图片,使整个过程一气呵成。用过 Workflow 的人应该对此有更深刻的体会,下图展示的就是一个自动识别来电号码的工作流。
应用号适合什么应用接入?
用 Allen 的一句话概括,就是“用完即走”的应用,例如纯电商类应用,买完东西就可离开;课程表工具,查完课程即可关闭;新闻客户端,看完新闻就不再使用等。这些应用具有以下特点:
- 功能单一:例如 MacID,用 iPhone 指纹解锁 Mac 电脑,功能单一,若微信提供蓝牙接口,完全可以做成微信内嵌的应用。
- 使用频率低:以滴滴打车为例,它纯粹是一个打车工具,正常上下班一天使用两次,使用频率低,完全没必要安装一个独立的 APP。
- 使用时间短:仍以滴滴出行为例,叫车时 5 分钟内打开应用,下车 5 分钟内打开支付,使用时间极短,无需长时间占用手机空间。
- 现象级应用:如曾经风靡一时的脸萌,用户编辑完头像后就很少再使用该 APP,这种应用比较适合以微信应用的形式存在。还有围住神经猫这个小游戏,作为网页应用在微信内疯狂传播,若需要下载,可能就不会如此流行。
当然,大部分 APP 开发者并不希望自己的应用成为“现象级”应用,昙花一现。
应用号不适合什么应用接入?
- 必须直接获得手机底层能力的应用:如一键 root 的工具、360 手机卫士等,因为微信不会开放接口让其破坏系统接口,安全风险太大。即便开发接口,也最多会提供给腾讯手机管家和 TOS 使用。
- 应用商店:像豌豆荚等应用商店,腾讯有应用宝,不会为其开放下载接口,因此这类应用没必要接入。不过,像最美应用等推荐类应用仍有机会。
- 社交 APP:微信不会开放最重要的关系链接口,且社交 APP 使用时间长、频率高,特别是聊天、表情等互动在网页端进行会非常卡顿,因此更适合独立开发 APP。而论坛则很适合,论坛具有非即时、互动轻(点赞、评论)等特点,如 PMCAFF 这种社区,非常适合在 H5 网页中使用。
- 需要大量缓存的应用:例如网易云音乐和侧重离线观看的视频 app 并不适合。目前微信因体积庞大已遭用户吐槽,所以不太可能开放本地储存接口给其他应用。而且允许其他应用文件进入微信 app 沙盒(不了解的可搜索“iOS 沙盒机制”),可能会对微信造成安全风险。
- 图片、摄影类应用:从微信目前提供的接口来看,图片美化和视频美化应用虽属于工具类 app,但如果做成微信应用,需要频繁进行图片和视频的上传和下载操作,且在手机网页进行拖拽、缩放、旋转等操作体验极差,因此不适合接入微信应用号。
- 企业应用:企业若想使用,可选择企业号;没有营业执照的企业,可百度“企微云平台”进行注册体验。
总结
微信应用号实际上就是一种 Hybrid APP,应用号只是一个渠道、一个入口。无论微信多么强大,它永远不可能成为一个操作系统(若微信能超越操作系统的能力,那腾讯为何还要开发 TOS 呢?)。因此,我们应做好自己的服务,将微信作为一个入口,而非全部依赖它。
来源:PMCAFF 产品社区