小程序开发

小程序入口,这才是微信6.5.7版本的终极隐藏功能


微信6.5.7,看不到小程序入口,点这里《微信小程序入口及激活指南》

微信6.5.7,看不到小程序入口,点这里《微信小程序入口及激活指南》


以下为本文章正文内容:

在今天下午,微信iOS更新6.5.7版本,带来了一系列功能。但仅仅停留在这还不够,按照之前的做法,2014、2015春节的微信红包,微信会提前一两个版本埋下相关逻辑,待新版本在一段时间内覆盖足够多的用户,然后在合适的时机下发配置,开启隐藏的功能。

而2017年的主角,是小程序。不出所料地,iOS微信6.5.7版本,隐藏了小程序的一切,尽管现在离2017年春节还有一个月时间,还可能会更新新版本,但现在已经能看到足够多东西。

先来看看从越狱后的微信里,能发现什么。

小程序的入口

小程序的入口
微信对入口做了AB Test。getABTestEntranceMode这个方法用于开启哪个入口。这意味着,不同的用户可能会看到不同的入口。

第一个入口是微信底部第三个tab”发现”。isOpenFindFriendEntry这个方法用于判断是否开启了这个入口,而FindFriend这个词对于底部『发现』这个View Controller,由此可知,微信的小程序的入口位于第三个tab,与朋友圈、扫一扫、摇一摇等入口并列。

第二个入口是Near。isOpenNearEntry,从其它类中发现,有不少以NearBy单词组成的类,我估计,这个入口与『附近』有关,也就是说,通过地理位置获取小程序?这个暂时不得而知。

微信小程序会对海外用户特殊处理。isOverSeaUser,海外用户估计看不到小程序了,和wechat out、微信表情等一样,有部分功能只开放给国内用户。而区分国内外,并不是根据地区,而是注册微信时就确定了,所以海外用户可能并不能通过更改地区来使用小程序。

小程序界面

接下来,我们通过调用微信FindFriendEntryViewController类的openWeAppDestop的方法方法,来进入小程序。

小程序界面
这是通过小程序入口进入小程序后,看到的第一个界面。但这里看不到很多东西,我来解读一下。

首页是一个原生页面。这个页面对应的View Controller的是WAMainListViewController,WA前缀对应WeApp,所以,接下来的事情就很简单了,搜索所有WA前缀或含有WeApp单词的类,就能发现所有与小程序相关的逻辑。

首页是一个原生页面
可以搜索小程序。这里两层搜索,与公众号搜索类似,先搜索本地小程序,再搜索服务器端的小程序。我输入了不少关键字,都没有出现搜索结果,估计server端还没有上线小程序,继续待观察。

可以搜索小程序
星标小程序。WAMainListViewController有一个openStarListView,同样地,call一下这个方法,出现星标小程序页面,类似收藏、加星等功能,估计是方便用户快速使用。这是各个公司的必争之地。

星标小程序

星标小程序
小程序客服消息。WAMainListViewController这个类有很多密码,但现在我们先跳过,来看看另一个界面。这个是从主界面,也就是底部第一个tab『消息』这里进去的,有一个客服消息的入口。NewMainFrameViewController有一个openWeAppSessionView的方法,同样地,我们call一下,界面就出来了。

小程序客服消息

小程序广告?

小程序广告?

小程序广告?
从小程序相关的类发现有一个叫WeAppSearchAdClickRequest,Ad这个词,我目前猜测是广告advertisement的缩写,而是否真的如此,需要真正发布后才知道。

小程序与地理位置

从小程序AB Test的Near入口,还有类中的一些方法名词,可以看出,小程序与地理位置有特别的关联。我们来看看WAAppMgr:

小程序与地理位置
这里有上次更新时间、生命周期等信息,这里更重要的是,有一系列与地理位置相关的逻辑,有获取地理位置、回调函数等属性和方法。这里还有一个请求类,叫GetWxaAppNearByRequest:

小程序与地理位置
同样地,记录了地理位置等信息。这里可以确定的是,这几个类肯定不是同一个程序员写的,一个用WA前缀,另一个直接写动词,这怎么能忍

所以,从这里可以猜想,小程序与地理位置有很密切的联系。

小程序配置文件

这里有一个WAConfigMgr的类,我猜想是发布时是通过配置下发的方法开启小程序入口。

小程序配置文件

其它

小程序的逻辑。下面展示一下与小程序相关的类,从名字里可以猜到对应的功能。而底部的JSEventHandler是native与js交互的逻辑。


小程序数据库。稍微看了一下,用户目录下有一个小程序数据库,一共有5个table,如果你有权限在手机上体验官方demo,你就会发现会在这里记录数据。

小程序数据库


总结

可以确定的是:

  • 微信小程序的一个入口在『发现』。

  • 微信对小程序的入口做AB Test。

  • 微信小程序可以添加星标,达到快速浏览的目的。

  • 可以搜索本地、server端小程序。

  • 有小程序客服消息提供协助。

  • 微信小程序与地理位置有关。

猜想:

  • 另一个入口『Near』是什么,在哪里?

  • 微信小程序是否有小程序广告,提供更高的曝光度和搜索靠前?