开发Countly plugin 的7个关键

编程入门 行业动态 更新时间:2024-10-09 22:18:05

开发Countly plugin 的7个<a href=https://www.elefans.com/category/jswz/34/1769045.html style=关键"/>

开发Countly plugin 的7个关键

    Countly为1.4万个App提供优秀的数码数据采集和分析服务,每月采集500亿数据点。Countly 在Gartner的《移动数据分析报告》连续两年(2016-2017年)被称为国际领先者之一。

    为了更准确地获取中国用户定位,蒋林春(航美在线网络科技有限公司)在2016年建议Countly采用百度的echarts组件。以符合Countly的插件式的架构,Countly的团队决定定制现有的“Country view”模块,提供中国城市和省的细分。 因此我们对于插件开发,我们提炼出了7个插件开发的关键要点。

 

1.    理解Countly plugin的开发指南

    在此网链你能参考完整的插件开发指南, 建议在开发前先完整过一遍此文库。请查看以下的完整插件目录结构:

2.     开发插件API接口

    这个是该插件的api服务目录,入口运行文件为app.js,在app.js中可以处理countly 服务从客户端收到的数据,也可以通过这个插件的api服务,对这个插件的前端提供数据展示接口。

提示: Countly 核心框架,不同的插件之间的通信可以基于事件实现。

    我们可以理解大部分的行为都是事件,从客户端传送的 session、view、 customized event都可以理解问事件。 系统内部的各个插件的系统事件可以通过 plugins.register("/i/ourplugin", processFun)注册监听, 和通过  plugins.dispatch("/i/ourplugin", params) 触发特定事件。欢迎参考系统默认的事件列表。

    你可以通过我们的logger插件了解到一些核心思路:

  • 监听’/sdk’事件,截获用户从sdk端请求到Countly的数据,添加到日志数据库collection中。
  • 监听’/o’事件,当在Countly dashboard向Countly api发起'/o?method=logs&filter={}'请求的时候,可以根据filter条件返回log记录。

    目前在 country plugin中因为已经在Countly 主目录实现了country 关联的事件处理,因此在这次定制修改中 我们目前不需要自己实现API服务。

3.     开发Frontend Javascript 代码

    基于backbone framework 我们封装了基本的MVC结构,每个插件默认加载的文件是countly.models.js 和 countly.views.js

提示:

  • Countly.models.js 定制了 前端的数据model, 和数据的CRUD处理逻辑。
  • Countly.views.js 负责渲染视图模板,同时加载 Countly.models.js 中的数据和数据处理逻辑。
  • 此外也可以封装更多javascript文件,到该插件的 ./frontend/public/javascripts 目录下。

    Map视图 我们选择了EChart,Echart支持中国地区城市级别的数据分布视图,同时还提供国家级别的视图,可以很好的满足我们中国地区客户国际化的需求。

    在Countly.views.js中我们定义一个EchartMapView. 这个对象继承自countlyView。countlyView的生命周期如下:

提示:

  • 通常情况下,在前端可能有更多的资源需要引入到前端展示,可以将这文件放入到 这个插件的”frontend/public/” 目录下, 在运行这个插件后,这个目录可以通过Http(s)://${domain}/${plugin name}/ 访问到。

 

    在 Echart Map plugin中,我们添加了pingyin.js 来解析中文对应的英文字母,实现对数据库内 city 英文名对应到相应的中文城市名。也添加了GEO location json文件,用于EChart Map 解析地理位置。 这些文件最后都会在EchartMapView.initialize() 中加载进来,然后在EchartMapView.renderCommon()中初始化EChart Map 对象。

4.    开发前端html视图

    Countly推荐使用Handlebars.js实现动态视图的组装,在这个插件中,我们定义好这个插件的视图html template文件, 然后通过在EchartMapView的函数来加载template和 templateData, 渲染最终数据。

 

5.    插件全局环境变量的实现

    Countly为插件提供全局环境变量的设置和读取。Countly会自动为配置生成UI界面,也可以根据您的需求定制。    

提示:

  • 需要在dashboard显示的变量对象结构最好不要超过两层的嵌套,Countly Configuration 视图的UI才能正常解析。

6.    插件全局环境变量的实现

    Package.json描述了这个插件的信息,会在dashboard的插件目录中展示。 启用插件时,会读取package.json 安装lib依赖, 同时执行install.js脚本,在脚本里可以做些这个插件对应数据库表空间的初始化,添加索引之类的工作。例子:当关闭插件的时候,会运行 uninstall.js 脚本。

7.   API的Debug和测试

    在开发API服务的时候,可以启用Node.js Inspector 来调试。

    Countly的测试框架基于Mocha,在plugin的目录下添加tests.js 可以在Countly运行test时加载这个插件的test。例子:.js

转载于:

更多推荐

开发Countly plugin 的7个关键

本文发布于:2024-02-07 11:02:37,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1756136.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:关键   Countly   plugin

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!