本文由Jinkey·京东微信购物 产品经理 授权【杏盛信息】发布,转载请联系原作者
作者:Jinkey
微信公众号: Jinkey(ID: jinkey-love)
先放一张男神帅帅的照片
从周一Allen“突然”登场化解公关危机和为应用号的推广省下一笔营销预算之后,普天盖地的自媒体在谈应用号,刷屏朋友圈。其实吧,应用号没什么新奇的,也说不上干翻应用商店之类的,只是如Allen所说“微信一个小小的举动都会被无限放大”。
今天Jinkey就来科普一下所谓“应用号”
(也说不上科普,半年前去微信面试的时候针对服务号的不足,提出来“微信应用商店”的概念,估计面试官也没注意orz,今天拿出来说说。本文只是科普,并非官方发布的最终产品形态,我并不知道最终会以一种怎样优雅的方式呈现,微信总能给人惊喜…orz):
想知道应用号是啥东西可以下载这个demo有个大概印象,这是我一直在用的一套hybrid app的开发框架。这个demo展示了网页应用通过javascript(网页的脚本语言)作为中介可以调用的原生系统能力的效果,微信自家的JS-SDK和这套框架及其相似,微信的JS-SDK甚至还没有这套框架提供的能力多。
什么是hybrid APP?
通俗的来说就是,在通过各种应用商店安装的APP( Native APP 原生应用)中某个页面添加一个WebView(浏览器组件,跟你们用来看岛国教育片的那种差不多的),开发者在原生APP代码里面挖一个洞(用来响应网页传给原生APP的指令和发送原生APP给网页的指令的接口)。结构如下图所示(iOS):
由一个系统提供的控件WKWebView(相当于你们平常用的浏览器)去加载一个网页。以iOS为例(很抱歉我已经放弃安卓了,本文主要以iOS为例子),通过evaluateJavaScript的方法在网页中执行js代码(网页执行动作的一种编程语言或者你可以理解为一种英语方言…你喜欢咯)。通过runJavaScriptAlertPanelWithMessage等方法(这里不展开说,开发的东西可以另外写好多文章了)可以响应网页中执行到的js代码,从而实现了网页调用手机系统原生接口的能力。概括成下图:
有人可能会问:全部原生就好了,或者全部都是网页就好了,干嘛要调(diao)来调(diao)去?
下面就说一下,为什么要用hybrid APP?
(...我没跑题,微信应用号和微信本身就是一个hybrid APP)
当自媒体出现的时候,大家都说会干翻传统媒体,而现在传统媒体只是被淘汰掉劣质的,好的依然好好的,搞自媒体搞得好的,大部分也还是传统媒体有影响力的人;当网络视频出现的时候,大家都会说干翻电视台,而现在电视台依然好好的,还多了微信摇电视微博互动春晚红包等新奇玩法;当电商火热的时候,大部分的人都说电商会干翻线下商场,而现在大街上依然开着各种零售店,依旧很多人喜欢逛街。当各种理财宝宝出现的时候,大家都会说互联网理财干翻银行,而现在银行依旧垄断着资金流。人们似乎有一种新鲜狂热症,觉得新事物能够完全颠覆旧事物,而新事物最终会和旧事物融合,得到升华(比如“社会主义也能搞市场经济”哈哈)。
还记得2014年10月29日HTML5正式发布吗?铺天盖地的文章说web app将会干掉Native APP,可到了2016,你还到Native APP退出大众视野了吗?没有,而且两者的混合版Hybrid APP逐渐成了开发者的喜好。
hybrid APP的好处是:
1、自己搭一个原生应用的壳,能够定制和控制更多能力而不受限于浏览器(比如微信浏览器就是不让你下载), 所以大家会经常见到各种提示打开网页和分享的蒙层。
2、原生的壳包裹了网页应用便于升级迭代,不受限于应用商店繁琐的审核流程和冗长的时间(比如Appstore的审核)
3、网页应用有利于减少开发资源的投入。不像原生应用那样:每一个小改动都需要iOS工程师和安卓工程师改一遍。
4、快速恢复。当原生全量发布之后出现问题可能需要迭代新版本才能修复,而网页应用只需要在自己服务器上修改即可。
5、添加快捷方式到桌面即像一个原生APP获得系统一级入口(安卓和iOS都可以实现,只是目前微信在ios上不提供)
6、有需要的时候再加载,节省手机空间,避免用户手机空间不足而放弃尝试你的应用。(你不能因为家里太窄而放弃掉一个想跟你xxoo的异性,你也没必要为了跟ta xxoo而马上买一间大房子,这时候你可以出去酒店开个房,用完就退。)
而寄生于微信的hybrid APP(或许可以直接叫应用号)的好处又有所不同,因为他必须通过微信这个管道才能间接地获取手机系统原生的能力(重力感应、GPS定位、震动、通知等等)
所以微信应用的好处是:
1、通过OAuth2.0(一种授权登录的方式,以后再写文章讲,欢迎搜索我的微信号jinkey-love)可以获取用户头像昵称,降低繁琐的注册流程。
2、减少用户流失。
点一下关注即和你的应用进入高潮,无需等待下载原生应用漫长的前戏。
3、降低开发成本。
可以调用微信提供的JSSDK,便捷地获取拍照、定位、弹窗提示、改变右上角菜单等能力,需要给自己的应用搭建一个原生的壳。对于个人开发者,前端语言只要会JavaScript就好了,WeUI框架都是现成的,可以懒得CSS样式都不用自己写。
4、获得微信的安全保障。
原本你的应用还要考虑安卓、WP和iOS客户端的安全,现在只需要考虑网页本身的安全性就好了。
但是既然多了微信这个“电灯泡”,肯定也有它的劣势:
微信应用的坏处是:
1、你的业务跟某鹅有冲突,有可能就“由于网页被过多用户举报,暂时无法打开”…然后就没有然后了…
2、获取系统原生能力受限于微信是否给你提供接口,比如现在JSSDK并不支持视频、室内定位、系统级通知、振动、获取加速度、获取手机系统信息、获取通讯录等等。又比如你要在你的应用加个吸底的输入框,但是微信没接口让你获取弹出键盘的高度,一点输入框键盘就把它遮住了,用户体验极其糟糕;
3、不能直接从微信执行下载、不能保存文件到手机本地等
4、一些禁止复制和禁止截图的保护内容,在微信里面都可以被复制,不能使用一些私有的加密逻辑。
5、有可能需要工商营业执照审核啥的,对于个人开发者不利。
6、每次使用的提示授权,不像原生只要授权一次以后都可以用。(当然微信也可以提供一次授权和授权管理的功能,不过现在是没有的)
7、投放广告受限制,微信可能觉得那是营销把你封掉。
8、不能缓存大容量文件,如音乐视频等。
9、诱导用户将该应用号添加到桌面成本高,且如果微信不提供接口或者有限制,那可能没办法放置在桌面了。这时候,桌面相当于一级入口,点开微信属于二级入口,点开微信应用号聚合页属于三级入口,点开你的应用使用某个功能相当于第四级入口,基于漏斗模型,用户流失会相当严重。
应用号会怎么做?(推断)
1、微信搜索入口,类似于spotlight,甚至直接提供spotlight系统级搜索,直达应用号
2、基于服务号获得通知推送能力,简介触达到系统通知中心
3、聚合页入口,类似于钱包(根据穷尽不重复原则,应该不会直接用钱包来做,并破坏用户认知)
4、列表页
5、应用直接打开H5,类似于京东购物入口或者是基于聊天界面来做,底部按钮满足tab的职能
6、通过JSSDK让应用号获得控制系统原生接口的能力,但受限于微信开放的接口。微信也不能随便开放,开得越多,漏洞越多。
7、工作流。比如说拍照、美化、发微博,希望需要打开两到三个APP才能完成。而微信可能提供接口,当拍照完的回调函数中调起美图网页版,编辑完图片的回调函数中调起微博并传过去美化后的图片,整个过程一气呵成。用过Workflow的人应该很清楚了,下图就是一个自动识别来电号码的工作流:
和应用号类似的有什么?UC应用中心、云集轻应用等。
UC应用中心我还是经常用的,但是UC轻应用无非就是打开了个网页,能调用原生能力有限,有些操作还是比较卡。而且这些轻应用和UC耦合度很低,把网址复制到其他地方就能用了。而像微信京东购物入口,腾讯充值等基于微信的hybrid app有些操作是需要检查微信登录状态,获取openID,进行oauth授权,利用微信关系链进行更多的互动和传播。
下面两张图就是UC应用中心截图:
对于云集,他是一款IDG创业大赛个人开发者开发的应用,从资金实力和知名度当然比不上UC和微信,只是他当初提出这个轻应用的概念,UC和百度好像还没有这玩意。
适合谁去用?
应用号适合什么应用接入?
用Allen的一句话概括就是“用完即走”的应用,比如纯电商类买完就走,课程表工具查完就走,新闻客户端看完就走等等。这些应用有如下特点:
1)功能单一的
比如MacID,用iPhone指纹解锁mac电脑,功能单一,完全可以做出微信内嵌的应用(假如微信提供蓝牙接口)
2)使用频率低
比如滴滴打车这种,纯粹是一个打车的工具,打完就可以关掉了,正常上下班的话一天也就两次使用,完全没必要装个app。
3)使用时间短
还是以滴滴出行为例子,叫车5分钟内打开,下车5分钟内打开支付,使用时间极短,不需要长时间占用手机空间。
4)现象级应用
还记得风靡一时的脸萌吗?我就编辑个头像,从此就跟这个app就没有关系了,是比较适合用微信应用的形式的。围住神经猫这个小游戏也是作为一个网页应用在微信内疯狂传播的,假如要下载,可能就没那么流行了。
当然...大部分APP的开发者都不希望自己的应用成为“现象级”,昙花一现的应用。
应用号不适合什么应用接入?
1)必须直接获得手机底层能力的
比如一键root的工具、360手机卫士等,因为微信不会开放接口给你破坏系统的接口,安全风险太大。要开发接口也最多给到腾讯手机管家和TOS使用。
2)应用商店
豌豆荚等,人家有应用宝不跟你玩了,下载接口都不给你,你还去凑什么热闹。不过像最美应用等推荐类的还是有戏的。
3)社交APP
最重要的关系链人家都不给你接口,你还在人家这里玩个球啊?社交app使用时间长、频率高,特别是聊天、表情等互动非常不适合在网页端进行,会非常卡,因此更适合自己做一个app。
而论坛就很适合,论坛就有非即时、互动轻(点赞、评论)等特点,比如PMCAFF这种社区。非常适合在H5网页中使用。
4)需要大量缓存的应用
比如网易云音乐和侧重离线观看的视频app并不适合,现在微信就因为体积越来越庞大而被吐槽,所以应该不会开放本地储存接口给到其他应用的。而且允许其他应用文件进入微信app沙盒(不懂的可以搜索一下“ios沙盒机制”),有可能对微信造成安全风险。
5)图片、摄影类
就微信目前提供的接口来看,图片美化和视频美化应用虽然也属于工具类app,但是由于如果做成微信应用,需要频繁的进行图片和视频的上传和下载操作,并且在手机网页进行拖拽缩放旋转等操作体验极其不好。所以并不适合接入微信应用号。
6)企业应用
想用就玩企业号去,没营业执照的可以百度一下“企微云平台”注册体验一下。
总结
微信应用号其实就是只是一种Hybrid APP,应用号只是一个管道,一个入口,微信再厉害也永远不是一个OS(微信能超越os的能力?那腾讯还做TOS干啥?),所以做好你自己的服务,把微信作为一个入口,而不是你的全部。