微信开发者工具中的js(微信开放JSSDK再次给浏览器们上了一课)
2015 年刚刚开始,微信 JS SDK 发布,惊爆众人,HTML5 产业好事连连。
JS SDK 这个概念,其实微博和淘宝的开放平台很早前就有,包括手机 QQ 前段时间也推出了几个增强 API,但都未产生很大的影响。小巫之后终见大巫,这次微信开放的 SDK,站在了另一个高度,web 到底能有多强?
HTML5的逆袭
其实之前微信也是有一些 JS API 的,比如分享。但这次一股脑开放了拍摄、录音、语音识别、二维码、地图、支付、分享、卡券等几十个 API,这条消息不需宣传,瞬间就占满了 HTML5 从业者的朋友圈。
因为微信给所有做 web 开发的人打开一扇新窗户:使用 js,你也可以调用各种强大的原生能力了!
客观的讲,微信的很多能力组件非常强,比如扫码,很多原生应用的扫码效果都不如微信。现在 HTML5 开发者瞬间成功逆袭,他们原本无法实现扫码,现在却能轻松的开发扫码应用,而且效果比很多原生应用都好(当然前提是你的 web 应用运行在微信的管理之下)。
首先受益的是微信内置的腾讯系 App,比如大众点评、滴滴打车、京东购物等。
以前微信在钱包栏目下以很别扭的方式内嵌了滴滴打车的 HTML5 版本,那个版本的体验比滴滴的原生版本差太多,不能说话只能打字,没有地图看不到司机在哪。在体验为王的移动互联网时代,这个将就能用的版本出现在微信的钱包分类下,其实是微信的败笔。
但如今不同了,滴滴打车的微信版本,将拥有不输于其原生 App 的能力。而且不用下载 App 就可以秒开应用。
大众点评的受益就更大了,不止是其微信内嵌版本的能力将大幅增强。因为使用场景的不同,滴滴在朋友间分享的只能是红包,离打车这个业务场景有点远;而大众点评在朋友间可以分享优惠或推荐商家,直接形成消费,通过关系链导流的效果会非常明显。
HTML5 定稿时,我写过的一篇文章,提到过 HTML5 的一大优势就是打破 App 孤岛,直穿应用子页面。一张大众点评的优惠券,通过朋友分享,就可以通过点击分享内容直接到达这个商户的界面,进而直接购买,这点连大众点评的原生 App 也做不到。
微信给我们展示了一个新的 web 世界:能力和原生一样强,但在应用的获取、流量的转换上进一步领先于原生应用。
很快,我们就会看到各种公众号、微店全面升级支持微信 JS SDK。然后我们就会发现,原来市占率最高的手机浏览器,是这个没有地址栏的微信。
浏览器的传统思维被突破
微信这个巴掌把浏览器厂商拍的不轻。但是浏览器厂商又很难还击,因为这挑战了他们的思维传统。
在 HTML5 规范制定时,很多人都有一种思维:web 是开放的,地址栏和超链接可能带来任意恶意网页,所以我们不能把 HTML5 的能力做到太强,会引发安全问题。
微信给了这些人不同的答案。
首先微信开放的能力没有涉及过于隐私的 API,比如个人敏感信息或好友关系,当然这个估计永远也不会开放。最关键的是,所有使用微信 JS SDK 的网站,都必须实名到微信认证、缴费。它采取了类似 Apple App Store 的策略,由系统运营方来保障用户的安全。
这个由微信构建的新 web 世界,不再开放,由微信所管理,他根本就没有地址栏,所有能使用微信增强能力的网页都是经过认证权限的。
其实 HTML5 强化这个领域已经发展多年,也已经有了行业规范,HTML5Plus.org,微信此次把这些标准都抛在一边,就是一心建设自己的生态系统。
除了管理模式不同,微信的设计体现了他对于用户体验的不同理解。其实我们大多数人都会认可一点,在手机浏览器里输入 url 是一个体验比较糟的事情,但是浏览器厂商却一直墨守成规。
我们来解构下微信的设计。
在微信里,既然没有地址栏,那么如何到达一个 web 应用,它有几个 web 入口?答案是 5 个。
- 消息内容里的超链接;
- 公众号的文章;
- 朋友圈;
- 扫一扫;
- 预置入口的web应用,如钱包、购物等栏目。
这 5 个入口里,没有传统的地址栏,甚至也没有搜索。
web 初生时,人们获取 web 信息是主动式的,通过地址栏访问网站,网站太多后开始使用搜索引擎。Google 的 page rank 算法告诉网民,被链接的网页越多,这个网页的价值越高。微信的理解里,大多数人们获取 web 信息是被动的,这里没有地址栏、没有搜索、没有 page rank,朋友发给你的、你订阅的公众号发给你的,就是你需要的 web 内容。
如果你真的想要主动获得内容,那也没有地址栏,但是有扫一扫。
可是扫一扫就不在微信的管理之下了吗?当然不会。很多 App 开发者头疼的就是他们的 APK 地址变成二维码后,微信是不能下载安装的,这可是浏览器不会干的事情,用户要下载什么那就允许下,最多给一个可能不安全的提示。但是微信说,APK 只能是来自应用宝的链接才可以下载。你不接受?那就别用扫一扫。
就这样,微信构建了一个独特的 web 生态系统。它有关系链推荐,不需要搜索引擎;它有消息系统,不需要电子邮件;它有增强的浏览器,有支付等业务闭环手段。最终一个完整而又封闭的 web 世界出现在微信里。信息在这里产生、在这里流转、在这里变现。手机上只需一个微信就够了,什么都能干了。
腾讯的战略
微信是仅仅强化了一批能力 API 吗?不是,大家还记得前段时间腾讯发布的 X5 浏览器内核吗? X5 内核内置于 QQ 浏览器,在安装了 QQ 浏览器后,微信有着不同的表现,它将调起 X5 内核,与 JS SDK 协作实现更好的体验。X5 和 JS SDK,这究竟是一盘什么棋呢?
微信其实很早就能开放这些 JS SDK,甚至一度曾开放几个又收了回去,为何此时如此大力发展 web 生态系统?
我想到了前段时间马化腾的话,微信只是张“站票”,他还给腾讯提出的一个新愿景:连接一切。张小龙也曾仔细研读 KK 的《失控》,提出微信要营造一个森林,而不是造一个宫殿。
其实这些事情是相关联的。有战略需求,才会出现 X5、微信 JS SDK 这些支撑战略的产品。要论站票和卧铺的区别,那就是一个可以躺着挣钱。如何才能躺着挣钱,看看阿里巴巴就知道了。在阿里建立的庞大生态系统里,每天无数人努力赚钱,阿里坐享其成。
腾讯曾经数次努力电商,但怎么也赚不到阿里的钱。它只能走自己的路。就是马化腾所说的,回归本源,连接一切。
电商搞不定,那就不搞了,剥离和注资给京东。搜索搞不定,那就不搞了,剥离和注资给搜狗。不再天天盯着阿里、百度,腾出全部精力,在移动互联网时代,达成连接一切的愿景。
没错,基于微信这张站票,腾讯最终要打造出一个由他掌控的生态系统,而对于一个工具而言,构建生态系统的最佳技术路线就是 web,强化 HTML5 是打造更优质生态系统的必由之路。
而此时能做这事,还恰逢 HTML5 即将崛起的机会。一方面手机硬件的不断提升使得 HTML5 表现更好,另一方面,就是 Apple 对 HTML5 的态度在开放,或者说 Apple 整体都在开放。一方面 iOS 设备的市场份额远低于 Android,另一方面库克确实没有乔布斯强势,所以目前 Apple 的整体态度是开放的。前段时间 iOS8 发布,Apple 给第三方厂商开放了自己的 js 加速引擎 Nitro,以强化 iOS 设备上 HTML5 的表现。此时的微信 JS SDK 上线,不必再像以前那样担心无法通过 Appstore 审核。
而且事实实际上是反过来的,带有微信 JS SDK 的版本其实早已更新到 Appstore 了,只是前几天才给开发者公布了调用接口。
但是不管怎么样,这带有试探 Apple 底线的味道。如果仅仅在中国倒也是区域行为,但微信事实上已经遍布全球,当海外开发者也大量开发微信专属的增强 web 时,Apple 和 Google 会如何看待这个新的跨平台霸主?
开发者的机会
whatever,巨头们的烦恼让他们自己操作吧,我等创业者和开发者还是要抓紧这个机会快速发展自己,快速利用微信 JS SDK 开发出惊艳的 HTML5 应用,抢先占有用户。后面的比较技术,有兴趣开发 JS SDK 的开发者可以继续往下看。微信本次开放的 JS SDK 分类清单如下:
- 分享类接口;
- 图像类接口;
- 音频类接口;
- 智能类接口;
- 设备信息类接口;
- 地理位置类接口;
- 界面操作类接口;
- 微信扫一扫接口;
- 微信小店接口;
- 微信卡券接口;
- 微信支付接口。
滴滴打车、大众点评这些微信内置应用的增强路线,将基本照着其原生 App 的模样演进。其他的开发者,还是要运营好自己的公众号,目前公众号分为订阅号和服务号。
订阅号的开发者提供的大多是资讯,那么对于资讯而言,可以利用 JS SDK 做的事情什么?
丰富内容形式,即除了图文,新增音频能力。类似电台的订阅号将有机会兴起。但微信暂时还没有开放视频能力,朋友圈里的小视频是原生实现的。在 Android4.0 以上的手机,安装了 QQ 浏览器后,微信网页里的视频播放才能被 X5 引擎优化。而目前使用 HTML5 标准的视频,会在低端手机上遭遇性能问题。所以视频还是缓缓再搞。
不管是做图文还是做音频,都应该利用新提供的设备 API 获取网络状态,WIFI 和 2G 下应该给予用户不同的内容以增强用户体验。
根据地域分发信息。资讯也是有地域性的,类似地方台的订阅号以后也会占有一席之地,而这也非常符合微信打造森林的生态初衷。
服务号就五花八门了,很多大企业有自己的掌上客服 App,这回可以整体搬迁到微信上了,这也给企业服务开发商很多新商机;
对于可线上交易的微店,微信小店和支付这些 API 必不可少。微店的商品,这下可以直接被分享出去,只要东西好,传播更容易、销量也会高升;
对于线下消费的 O2O,地图和卡券很重要。卡券对微信而言是个新东西,之前 iOS 已经有了 passport,大众点评也有自己的会员卡体系,但微信自己做了一套,相信体量会做的更大,以后大家出门不用在钱包里塞那么多卡了,都在微信里了。
微信官方还推荐了几个 App 供开阔思路。
印美图是一个云打印 App,自拍的美图,可以直接提交给这个 App 的后台,运营方打印好照片快递给你。微邮筒是一个语音明信片,在明信片里留下自己的声音,再发给朋友,并且可以长期保存在服务器。
微信官方没有提供开发和调试配套的服务,客观地讲,开发和调试的便利性很不好。推荐一个免费开发工具 HBuilder,可以完美支持微信 JS SDK 的语法提示,大幅提升开发效率。下图中敲 wxc 回车就能生成一段完整的微信 API 初始化的长长代码,还能给予各种参数的值域提示。
接下来会如何
我们都很确信,JS SDK 的这个版本只是一个开始,未来腾讯还为了强化其 web 生态系统建设而不停升级产品。
1. 会颠覆原生 App 吗?
微信 JS SDK 继续升级下去,真的会颠覆原生 App 吗?目前的微信 JS SDK,属于 web 增强,它依然还不能离线使用,还没有解决网页跳转间白屏的体验,也不能在手机桌面创建快捷方式,暂时它并没有向着努力做到和原生一模一样体验而前进。
就腾讯连接一切的愿景而言,它应该没有颠覆原生这个战略目标。但是这个月活 4 亿的平台势必会更大程度占有用户使用手机的时间,自然也会大幅影响原生 App 的流量。对于普通用户而言,每天使用手机的时间是有限的,之前每天看着手机屏幕的总时长里可能 60% 是被微信占去的,那么微信未来可能会占去 80% 的时间。
另外微信虽然没有颠覆原生 App 的愿景,不代表其他人不会做这件事。IT 行业总是在持续创新和突破的,除了微信,还会有其他大型 HTML5 的平台出现,可以预见 HTML5 成为主流已是不可阻挡的趋势。
2. 微信会重构移动搜索吗?
这个概率其实很高。在微信现在的 API 里,有一个智能语义的接口,传入“查一下明天从北京到上海的南航机票”,就会返回结果。很像 siri 是不是?其实微信完全可以现在就在扫一扫下面加一个说一说,但是他目前没有这么做,是因为搜狗还不够强大?还是因为不想过早刺激百度? 确实相比起来,腾讯在手机上抢夺百度份额的胜算是远高于抢夺阿里的。但是手机端广告市场一直没起来,抢掉搜索份额又如何?
3. 微信会重构移动电商吗?
其实单纯的套 PC 互联网的模式给移动互联网是不对的。腾讯最关心的不是移动电商,它更关心移动支付。所以易迅才会被剥离给京东。腾讯十年总结时曾说,是互联网网民的高速增长红利造就了腾讯的今天。其实类似于雷军风口的理念。
移动支付,是一个大风口,是未来若干年高速增长的产业。
我们可以预见,未来移动支付的用户数会越来越多,交易额会越来越多,直到颠覆现金的地位。但移动支付可不只是在电商网站买东西付款,更多场景在 O2O 范畴里。
移动支付大战里,腾讯一方面通过微信红包发展用户,另一方面通过资本手段控制支付场景,其投资的滴滴打车、大众点评、京东电商,这些合作伙伴的业务都是高频的支付场景,其成功的帮助腾讯发展了移动支付体系。
当然阿里也不甘示弱的支持快的和美团。滴滴和快的的补贴大战、大众点评和美团补贴大战,看似疯狂,其实都是为了移动支付这张船票,为了未来十年的继续高速增长是任何一个巨头都不愿错过的。
在未来人们的衣食住行里,买衣服花钱用阿里和腾讯,吃饭花钱用阿里和腾讯,出门打车结帐用阿里和腾讯,就是买房好像不太好做移动支付。
另外近期在医疗领域,移动支付之争也打响了,那意味着以后看病,也用移动支付。
微信的 JS SDK,其实很大程度上就是为了把这些需要花钱的 App 控制在自己的生态下,微信给这些 App 提供流量、提供更强大的运行环境,大家努力挣钱,然后微信躺着分钱。
4. 不管怎么样,HTML5 会大火特火
腾讯的这条构建 web 生态系统的路,还是有很多高手已经看懂了的。很快各大互联网巨头都会有自己的对策。但不管是什么对策,都是要基于 HTML5 来做了。
对于 HTML5 的开发者和从业者,这都将是一个最好的时代。
本文作者王安,DCloud公司CEO,W3C会员、HTML5中国产业联盟发起人,HTML5开发工具HBuilder设计师,十几年web和手机开发经验,个人邮箱:wangan@dcloud.io。
[本文来自读者的投稿,不代表36氪立场]
[本文来自读者的投稿,不代表36氪立场]
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com