关于微信小程序,你不知道的那些事

编辑导语:微信小程序,是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或搜一下即可打开应用。2017年1月9日,张小龙在2017微信公开课Pro上发布的微信小程序正式上线。我们日常使用的微信小程序,你真的了解它吗?

第一次写将近6000字的文章,把我所理解的小程序讲给你听。文章很长,先列一个提纲:

从短信到公众号订阅号与服务号H5与原生页面从服务号到小程序触手可及的小程序用完即走的小程序交互模式与业务逻辑

一、从短信到公众号

关于小程序,我们有很多的疑问:微信为什么要做小程序?小程序在整个微信生态里的定位是什么?要理解小程序的定位,首先是要明白微信的定位是什么?

微信的本质是一款工具——张小龙

微信到底是一款什么样的工具呢?

或许在我们理解中,微信只是一款替代了短信的即时通讯工具。短信对于普通用户来说,的确只是一个通讯工具。自从微信出现了,我们短信发的越来越少了。

但是对于企事业单位来说,用户通过短信收取服务的通知,例如:我们经常会收到商家各种营销短信。

学校要求家长开通校园通短信服务,方便接收学校的通知。例如,这次考试你孩子考了多少分,年级排名是多少,下次家长会什么时候参加。

当然,学校也不是总发这些扫兴的短信。偶尔也会来点惊喜,例如,高二那年冬天,有次下大雪,校园通群发短信。因为道路积雪,明天放假。

公众号作为一个内容分发平台,降低用户获取内容的门槛,是内容更加轻量的载体,但是它承载的还是内容。

微信的目标是连接一切,微信不满足于止步于连接用户与内容,微信想直接连接用户与服务,他们希望在传播内容的同时还可以提供服务。

微信在2013年专门拆分出一个服务号出来,服务号只有组织才能申请,其定位就是提供服务的平台。如果说订阅号的定位是连接用户与内容,而服务号就是连接用户与服务。

二、服务号为服务商开发了更多接口

订阅号与服务号最大的区别不在于推送频率以及展示的入口,而在于服务号提供了更多的接口能力,订阅号只是提供了订阅推送能力。

以用户就餐的场景为例,如果这家餐厅开通的是订阅号,用户只能看到推送的文章。订阅号也有菜单栏,但是不支持配置外部链接,用户在菜单栏里看到的其实还是文章。

而服务号开放了更多的接口例如获取用户信息、模版消息、微信支付等,用户在餐厅的服务号里可以直接完成在线排队、点餐、付款等操作。

就拿在线排队这个功能来说,我们经常会遇到餐厅座位已满的情况。

我们要排队,只能人坐在那里耗,不能走远。服务号的出现,商家获取到用户的openID,通过推送模版消息告诉用户实时排队进度,用户可以四处逛逛。

如果没有服务号,“在线排队,实时提醒”的功能也可以做,但是商家的开发成本和用户使用成本都会提高。实时提醒的方式只能通过发短信方式,而且需要用户输入手机号,用户的手机号也会存在泄漏的风险。

对于一些业务逻辑比较简单的服务商来说,放弃开发独立的app,转而运营微信服务号是一个更好的选择。

不仅仅是更低的研发成本,更是因为微信是最大的流量池,用户在微信里可以直接享受服务,可以减少因下载安装app所造成的用户流失。

用户在哪里,服务就应该在哪里。

下载安装一款几十M甚至上百M的app对于用户来说,是一件成本很高的事情。我到你这吃饭,点个菜还需要下载安装你们的app,你疯了吧?

三、H5与原生页面

服务号的出现,让用户可以在不下载安装app的情况下就可以享受服务,但是服务号是无法取代APP的,为什么?

首先我们来回答一个问题——服务是什么?

服务对于用户来说最直观的感受就是一个个页面,我在这个页面上可以缴话费,在那个页面上可以查询公交车信息,页面是服务的载体。

那么问题来了——这些页面是如何搭建的呢?

这里我们先花时间简单介绍一下前端知识,我们在手机上看到的页面分为原生页面和h5页面:

原生页面的开发成本更高。搭建一个原生页面,需要安卓和iOS两端各开发一套页面;而H5页面,只需要开发一套页面就行了;用户要访问原生页面必须要下载安装APP,而用户在浏览器就可以直接访问H5;原生页面的改动,必须要经过应用市场的审核。审核通过后,用户还需要更新APP的版本,才可以看到改动后的原生页面。H5页面的改动不需要审核,可以随时上线,更加敏捷。苹果每年圣诞节期间都要休假暂停审核的平台,如果你的APP针对元旦在原生页面上做了一些改动,iOS版本必须要提前提审;原生页面直接跟操作系统交互,而h5页面是跟宿主浏览器交互,所以原生页面可以提供更多功能;原生页面的交互比H5更加流畅。总结:

H5页面开发成本低,速度快,功能少,体验差;原生页面开发成本高,速度慢,功能多,体验好。而服务号的主体只能基于h5进行开发,很难给用户提供原生app一样的体验。因此让服务号承载连接用户与服务的功能,其实是过度赋能的,微信需要一个产品来连接用户与服务。

四、从服务号到小程序

2016年初,因为服务号没有达到预期,微信宣布要新开发一个新的公众号形态,一种提供新的服务能力的公众号——应用号。

“我们开发公众号不是为了媒体,我们的本意不是传播内容,我们要提供服务,但服务号没有达到预期,我们在讨论一个新的形态,叫应用号。平时不发东西,他安静的存在在那,低频的需求不需要安装App,微信尝试让更多App以轻量便捷的形态在微信中存在,就是应用号。”——张小龙,2016年微信公开课,谈应用号

2017微信公开课,张小龙正式推出小程序

一年后,微信应用号上线了,只不过名字改成了小程序。

小程序兼顾了原生和h5的优点,从用户的角度来说,体验比h5更好,比下载app更加便捷。开发成本低,开发一套页面可以兼容不同的平台,可以给用户提供原生页面的体验。

其实在我看来,小程序更像是一项新的前端技术,而不是新的产品形态。

张小龙在小程序刚发布时,给小程序定了4个特性:无须安装、触手可及、用完即走、无须卸载。其实无须安装,深究起来是错误的。

小程序是需要用户下载的,但是小程序的包太小了。与APP动辄几十M乃至一百多M相比,只有1-2M大小的小程序非常的轻量,2018年初很火跳一跳小程序包的大小只有4M。在loading过程中就可以完成下载,用户基本上是无感知的,因此包装成无需下载也没什么问题。

18年初火爆一时的“跳一跳”

五、触手可及

触手可及,在我看来是微信小程序最重要的一个特性,因为他体现了张小龙对于未来应用形态的理解。

假如我看到房间里面的一盏灯,我想让这个灯关掉或者打开,当我透过这样一个很智能的眼镜看到这盏灯的时候,我会希望在那个灯的上方会出现一个虚拟的开关,我甚至可以用眼镜去控制这样一个开关,那个开关是什么东西?它其实是出现在真实物体上面的一个应用程序。当我看到这盏灯的时候,它的开关应用程序就自动出现了,同样的你可以想象非常非常多的场景。当你走到一个公园的门口的时候,可能公园门口会出现公园门票的应用程序,也就是说当你看到任何一个眼睛能看到的实物的时候,这个实物背后的信息和应用程序都会自动浮现出现。你通过眼镜或者别的方法控制这样一个应用程序,去启动它,去运行它。——张小龙,2017年微信公开课,谈未来应用形态

在张小龙的设想中,小程序是没有统一的固定入口的,小程序入口应该是出现具体的需求场景中。当用户有需求时,用户就可以立刻访问小程序;当用户没有需求的时候,就不应该提供访问小程序的入口。

小程序刚上线的时候,最主要的访问来源是线下扫码。

微信小程序上线后半年,使用频率最高的小程序是摩拜单车、实时公交、滴滴出行这些线下场景。张小龙提到的电灯和公园的例子都是线下的场景,所体现的想法也正是小程序应场景而生的理念。

但是对于各个服务商来说,这一点他们很不喜欢。

不管用户对自己有没有诉求,他们都希望自己小程序可以无时不刻不在用户的眼前晃悠。朋友圈、公众号、微信群,他们希望在微信所有流量大的场合都露出自己的小程序。

基本上微信每次发布一个新的功能,都会被理解成一个新的风口,各家都会一窝蜂上去想着怎么去捞取一波新的流量红利。因为微信是中国dau最大的app,是头号的流量池。

为了防止过度营销,微信小程序在入口上做了很多限制。

首先,微信小程序不支持朋友圈,也就是说用户在朋友圈看不到微信小程序。

一旦小程序可以朋友圈,那么各个商家就会想办法把小程序打造成一个营销工具,在朋友圈进行病毒式营销吸取粉丝,这明显有悖于张小龙对于小程序应场景而生的定位。

初期的小程序甚至不能通过长按识别二维码进入小程序。就是为了防止一些服务商会通过生成新年签等图片在朋友圈进行圈粉营销。

后面小程序的入口逐渐放开,用户可以从微信公众号(菜单、文章页)、其他小程序和APP的入口访问小程序。

今年7月份微信小程序在安卓端开始支持朋友圈,但是朋友圈的只是单页模式的小程序。

单页模式做了很多限制,可实现的交互与接口能力有限。最首要的就是页面无登录态,这直接断绝了商家的营销需求。因为在这个页面,你根本拿不到用户信息。

微信严禁服务商把小程序当成一个营销引流工具,微信小程序有个运营规范建议大家可以看一下,里面详细记载了通过小程序进行营销引流的各种死法。

六、用完即走

在张小龙的设想中,小程序是一个提供服务的工具,用户完成了服务就应该直接离开。对于很多商家来说,他们不想让用户用完即走。因为用户走了可能就再也不回来了,用户想用户留在小程序里。

如何提升小程序的用户留存呢?有钱的话就砸钱,每天都有羊毛可以薅,用户肯定每天都来。但是这个成本太高,且不具备可持续性。

【我的小程序】是小程序唯一固定的入口,【最近使用】只是小程序的使用记录,并不算是固定入口

那么换一种思路,诱导用户把小程序添加到任务栏的【我的小程序】,例如:添加就给你发积分、卡券。

这样用户每天都能看到,增加曝光。但是微信没有提供用户添加小程序事件的接口,也就是说这个用户有没有添加这个小程序你根本不知道。

看来这条路也不行,微信认为小程序就是一个工具,铁了心让你用完即走。

那么走去哪?微信是头号流量池,各服务商会尽量从微信来引流到自己的app,公众号甚至是其他小程序。

1. 小程序之间互相跳转:支持

微信为了避免小程序之间互推引流,之前对小程序相互跳转进行了严格的限制。

首先两个小程序必须维护同一个公众号主体下,需要把对方小程序的appid维护在app.json中,而且最多只能跳转10个小程序。但是从今年5月份开始,限制逐渐解除。

现在只要你知道对方小程序的appid,就可以做到在在自己的小程序(原生页面)里唤起对方小程序。

2. 小程序与公众号

用户可以公众号菜单、文章直接打开小程序;但是小程序为公众号引流场景很少,目前微信只放开了线下扫码这一场景。

3. 小程序与APP

对不起,微信对小程序直接唤起app功能又做了限制。

对于一般小程序来说,从小程序唤起APP的场景只有一种:就是用户A从app分享一个页面给用户B,用户B在微信小程序里打开这个页面,这种情况用户B是可以直接唤起app。

其他场景中,小程序一律不可以唤起app。

为什么这里特指“一般小程序”?

因为我们可以看到很多小程序不是上面的场景,也可以直接唤起第三方app。你可以查一下这些公司的股权结构,绝大部分都是腾讯入股的。

我在这里要澄清一点,刚刚说到,哪怕对投资公司在系统里面,也会一样对待,但是确实大家对投资的公司是有所倾斜的。我们在这一点上做的不够好,而不是说想要倾斜他们,只是我们对于这种平台的保护做的不够好,我相信我们团队在今后这一块投入更大的人力和资源,使得我们可以对所有的公司,包括我们投资的公司一视同仁。——张小龙,2019年微信公开课,谈微信小程序对投资公司的倾斜

总体来说,微信小程序对于微信来说就是一个提供服务的工具,微信不希望服务商把小程序用成了一个恶意营销引流的工具。

又或者说微信关心的不是你的小程序是否“恶意”引流,他所关注的是你通过何种方式引流——自己私下引流,不行;交钱接入微信广告引流,行!

七、产品的面子与里子

最后再说一下我自己的想法,我们很喜欢做竞品分析,但是多数的竞品分析总是在UI交互层面打转。

如果我们不去思考其业务逻辑,界面层级的分析只能是管中窥豹,盲人摸象。

或许我们会在分析报告里使用一些用户体验、交互成本诸如此类看起来很严谨科学的词汇,但是本质还是针对你看的事物进行一种浅显的表达。这种分析其实没什么含金量。

例如,如果你要做小程序登录功能的竞品分析,你会发现很多小程序会让用户授权使用微信绑定的手机号,有的小程序没有。

如果我们仅从操作成本的角度来看,我们会选择授权使用绑定手机号的流程。因为这个流程,用户不需要手动输入手机号,并且微信绑定手机号的时候,会有短信验证,相当于加了一个安全核验。

如果我们信任微信的安全核验,甚至可以直接拿微信授权的手机号走一键登录。

滴滴出行小程序直接获取用户绑定的手机号,不需要用户手动输入

但是我们发现有很多小程序,例如爱奇艺小程序,依然让用户手动输入手机号,简直太低效了!

爱奇艺小程序依然选择让用户手动输入手机号

如果我是爱奇艺的产品经理,我也会采用这样的方式。

对于一个家庭来说,不需要每个人都开通爱奇艺账户,一个人开通,全家借着看的场景很常见。如果采用微信授权手机号登录的方式,那么可能只有绑定这个手机号的微信才能登录了。

类似的例子还有用户个人信息授权,有的小程序让用户进行个人信息授权,有的小程序则没有。

如果你不知道个人信息授权可以拿到用户的哪些信息,以及这些信息在我的业务场景下具体可以用来做什么,我们是无法回答我的小程序是否需要用户个人信息授权这个问题的。

例如,如果你的小程序会有邀请好友给你砍一刀的分享裂变活动。那么这种情况,我建议你获取用户的个人信息授权,因为好友需要你的微信头像和昵称进行信任背书。

如果说UI交互是产品的面子,那么业务逻辑和产品模式是产品的里子。面子很一眼就能看到,但是里子却很难掌握。毕竟我们不是内部人员,我们只知道他这样做了,但是不知道他为什么这样做。

尝试分析他们为什么这么做,不要纠结于自己得出的结论是否是正确答案。因为除非你问对方产品经理,要不然你永远不知道准确答案。思考的过程远比结果重要。

本文参考于《人人都是产品经理》这本很优质的书。

关于微信小程序,你不知道的那些事相关推荐

  1. 微信小程序内部那些事

    微信小程序没有window.document,它更像是一个类似 Node.js 的宿主环境.因此在小程序内部不能使用 document.querySelector 这样的选择器,也不支持 XMLHtt ...

  2. 很好的微信小程序小结

    一.小程序文档笔记 默认开发目录 开发目录解析 1.  app.js.app.json.app.wxss 这三个文件必须有不能删掉. 一个小程序主体部分由这三个文件组成,而且必须放在项目的根目录 js ...

  3. 微信小程序(BDEDU签到工具)项目总结

    本篇博客用于记录微信小程序(BDEDU签到工具)的开发过程 微信小程序的开发入门 1. 申请微信小程序 申请小程序,无非是去微信公众平台选择申请小程序,然后填写一些相关信息即可. 2. 部署开发环境 ...

  4. 微信小程序:开发之前要知道的三件事

    2019独角兽企业重金招聘Python工程师标准>>> 微信之父张小龙在年初的那次演讲中曾表示:"我自己是很多年的程序员,我觉得我们应该为开发的团队做一些事情". ...

  5. 你不知道的微信小程序-李宁-专题视频课程

    你不知道的微信小程序-5736人已学习 课程介绍         本课程介绍了什么是微信小程序,以及微信小程序使用了什么技术(React Native,weex),并且和类似的技术进行对比. 课程收益 ...

  6. 微信小程序——api调用(糗事百科例子)

    糗事百科api分析 糗事百科 http://m2.qiushibaike.com/article/list/{type}?type=refresh&page={page}&count= ...

  7. 乐鑫Esp32学习之旅 19 重磅开源,如何在微信小程序上ble蓝牙配网esp32,blufi的那些事!

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1. 爬坑学习新旅程,虚拟机搭建esp32开发环境,打印 " ...

  8. 【微信小程序控制硬件 第13篇】安信可B站直播学习总结,微信小程序MQTT远程控制ESP8266 NodeMCU,谈谈微信生态那些事;

    [微信小程序控制硬件第1篇 ] 全网首发,借助 emq 消息服务器带你如何搭建微信小程序的mqtt服务器,轻松控制智能硬件! [微信小程序控制硬件第2篇 ] 开始微信小程序之旅,导入小程序Mqtt客户 ...

  9. 微信小程序开发之wxss中的那些事(一)

    微信小程序开发之wxss中的那些事 微信小程序开发中,页面的布局怎么整? 啥是WXSS? 基本语法 什么是rpx 什么是 flex 微信小程序开发中,页面的布局怎么整? 各位道友请留步,如果你是新手, ...

  10. 做800个微信小程序全军覆没?开发者首先要弄清三件事

    这几天一则新华社的报道引起了我的关注,报道标题是:<百来块制作的小程序,竟敢要价几万元--多地"微信.支付宝小程序"骗局调查>. 简单地说,就是有些诈骗集团,冒用微信或 ...

最新文章

  1. jwt只能用ajax么,使用JWT进行登录认证的一些问题
  2. 双指针找链表中点多种写法
  3. npm package.json那些事
  4. vmware中系统开机黑屏_macOS Catalina系统Vmware Fusion虚拟机黑屏问题的解决过程
  5. 基于java封装的语言_封装在java中的应用
  6. Gradle里Copy任务(task)的使用
  7. 【Python 必会技巧】[i for i in range(1,10)] — 列表解析式,列表中使用 for 循环
  8. PingCAP黄东旭:云原生、开源与分布式是数据库行业发展关键词
  9. python基础刷题_数据结构与算法LeetCode刷题(Python)
  10. 阶段3 2.Spring_02.程序间耦合_2 编译期依赖
  11. gitbub遇见的问题
  12. R语言length()和lengths()的区别
  13. 【算法设计与分析】(6)算24点问题(回溯法)
  14. 刘霞:“手艺人鞋吧”圆了创业梦_创业时代_科技时代_新浪网
  15. Fuchsia OS 将推送给所有第一代 Nest Hub 设备
  16. 基于Python+Django+Vue+MYSQL的社团管理系统
  17. Hyper-V服务开启or关闭
  18. Excel客户等级星级表达
  19. 车牌识别1:License Plate Detection and Recognition in Unconstrained Scenarios阅读笔记
  20. Python、设计原则和设计模式-创建类设计模式

热门文章

  1. Crontab cron.deny cron.allow
  2. Java常量池简单认识
  3. 利用DISC工具进行自我情绪觉察与调试
  4. 3 整型变量,实型数据(主要是实型变量)2021-01-25
  5. python编写一个汇率兑换程序_汇率兑换—python第一课
  6. 行人重识别论文阅读12-Bi-directional Exponential Angular Triplet Loss for RGB-Infrared Person ReID
  7. Linux或windows输入中文顿号变成反斜杠 | Linux或windows中英文标点符号切换
  8. php中case的使用,php:switchcase语句的使用案例
  9. 【程序员如何买基金 四】个人投资诊断和基金诊断
  10. Fang Fang 思维题