Countly SDK 消息分析
Countly SDK 消息分析sdk发来的一条消息: /sdk/log ob.params.qstring: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717
Countly SDK 消息分析sdk发来的一条消息: /sdk/log ob.params.qstring: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717
Countly countly_drill drill_events 表每个特定事件对应一个集合,集合名称使用”drill_events”字符串和来自事件键的sha1哈希以及应用ID形成。 例如,对于具有键”Buy”的事件和应用ID”542e95d747f0be510c000004”,集合名称将是:”drill_events” + sha1(“Buy542e95d747f0be510c000004
SVG 文件概要SVG的小例子笑脸符 1234567891011121314<!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/xhtml"><head> <meta charset="utf-8" /> &
Countly 插件-扩展或修改模块https://support.count.ly/hc/en-us/articles/360037502332-Extending-or-Modifying-Modules 例如,修改 countly/api/parts/mgmt 中有一个 mail.js 模块。 需要扩展某些未扩展的模块,请按以下步骤操作: 12345678//r
Countly 插件-建立视图 view创建一个基本的Countly视图,它将使用我们的模型来获取数据并在页面上显示组件。 countly.views.js1. 创建组件 component1234567891011121314151617181920var MainView = CV.views.create({ template: CV.T('/our-plugin/
Countly 插件-建立模型 model定义一个简单的模型,从路径/o上的API获取数据。 /o?method=ourplugin countly.models.js1. 定义您的 Vuex store1234567891011121314151617181920212223242526(function(countlyOurPlugin) { co
Countly 插件-创建一个菜单项 addMenu addSubMenuhttps://countly.github.io/countly-server/lite/master/browser/app.html#.addMenu 例子: 12app.addMenu("improve", {code: "crashes", permission:
VUEX 基础-ActionActionAction 类似于 mutation,不同在于: 12Action 提交的是 mutation,而不是直接变更状态。Action 可以包含任意异步操作。 让我们来注册一个简单的 action: 123456789101112131415const store = createStore({ state: { count: 0
VUEX 基础https://vuex.vuejs.org/zh/ Vuex 是什么Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式 + 库。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。 什么是”状态管理模式”我们从一个简单的 Vue 计数应用开始: 1234567891011121314151617181920const Counte
VUE 基础-混入 mixinhttps://v2.cn.vuejs.org/v2/guide/mixins.html 基础混入 (mixin) 提供了一种非常灵活的方式,来分发 Vue 组件中的可复用功能。一个混入对象可以包含任意组件选项。当组件使用混入对象时,所有混入对象的选项将被”混合”进入该组件本身的选项。 例子: 123456789101112131415161718// 定义一个混入对
VUE 基础-自定义事件https://v2.cn.vuejs.org/v2/guide/components-custom-events.html 事件名不同于组件和 prop,事件名不存在任何自动化的大小写转换。而是触发的事件名需要完全匹配监听这个事件所用的名称。举个例子,如果触发一个 camelCase 名字的事件: 1this.$emit('myEvent') 自定义
VUE 基础-插槽https://v2.cn.vuejs.org/v2/guide/components-slots.html 插槽内容允许你像这样合成组件: 123<navigation-link url="/profile"> Your Profile</navigation-link> 然后你在 的模板中可能会写为: 123456<a
VUE 基础-计算属性https://v2.cn.vuejs.org/v2/guide/computed.html 基础例子1234<div id="example"> <p>Original message: "{{ message }}"</p> <p>Compu
通过 moment 计算两个时间相差的天数和时分秒主要运用moment以下方法: 1234moment().diff();获得以毫秒为单位的差异moment.duration().minutes() 获取分钟数 (0 - 59)。moment.duration().hours()获取小时数 (0 - 23)。moment.duration().days() 获得天数 (0 - 30)。 1234
pm2 达到内存阈值时重新启动PM2 允许根据内存限制重新加载(如果不在集群中,则自动回退重启)应用程序/请注意 PM2 内部工作程序(检查内存)每 30 秒启动一次,因此达到内存阈值后,可能需要稍等片刻 进程会自动重新启动。 使用 –max-memory-restart 选项指定内存阈值。 1pm2 start server.js --max-memory-restart 300M
Vue 基础Vue 简介官网文档:https://v2.cn.vuejs.org/v2/guide/ Vue是基于MVVM模式实现的一套框架(把页面分成Model、View 、ViewModel 三部分)。 MVVM的工作原理: 12当数据源发生变化时,会被 ViewModel 监听到,ViewModel 会根据最新的数据源自动更新 View 页面的结构当 View 表单元素的值发生变化时,也会被
fs.chmod 方法该方法以异步的方式来改写文件的读写权限。 12345678910var fs = require('fs'), oldFilename = "./processId.txt", newFilename = "./processIdOld.txt";fs.chmod(oldFilename, 777, function
Countly 插件调试 Countly 服务器修改服务器配置第一步是修改 Countly 服务器 Countly/bin/config/ 目录下 supervisord.conf 配置文件以支持调试。我们需要将”–inspect”参数添加到节点服务器启动命令中。您还可以设置”–debug-brk”参数,调试器将在服务器脚本的第一个语句上停止。 如果需要在远程服务器上
Countly 插件扩展或修改模块如果要修改现有行为怎么办?最好的方法是直接修改模块。 例如,countly/api/parts/mgmt 中有一个mail.js模块。如果我们想更改 Countly 默认发送的模板电子邮件怎么办?我们可以允许我们的插件通过插件管理器修改这个模块。因此,任何需要此模块的实例或进程都会经过我们的修改。 首先,我们需要自行修改mail.js
Countly 插件创建 UI 视图 v22 及更高版本1234创建可以从 API 获取数据的 model 模型。创建一个 VueJS 视图,该视图将从模型中获取数据,将其加载到模板中并将其附加到页面。将此视图添加到 App Router。注入一些 Javascript 来修改页面,就像为我们的插件创建一个菜单项一样。 设置模型 定义你的 Vuex 商店 如果你的视图需要管理状态,你可
Countly 插件创建 UI 视图通过向仪表板添加新的 Countly 视图来为您的插件构建 UI。 有些文件会自动加载到 Countly 仪表板中,现在使用这些文件(基本上是 countly.models.js 和 countly.views.js),我们既可以从 API 获取数据并显示它们。 我们需要实现的是: 1234创建一个可以从 API 获取数据的 model 模型创建一个 Back
Countly 插件 Frontend (browser) 文件为 Countly 创建新页面和视图。 在浏览器端,Countly 用户Backbone.js使用 Handlebar 模板库和模型来渲染视图,以加载和准备视图的数据 在开发客户端前端时要考虑的一件事是 Countly 可以安装在子目录中,因此尝试使用相对路径(如在 css 文件或 html 中)或在绝对路径中使用 countly
Countly 插件前端服务器端文件借助 EJS 模板,您可以轻松地将数据传递到模板并呈现数据。 将处理前端请求的文件应命名为 app.js,并位于插件目录 api 文件夹中,作为 {plugin}/frontend/app.js 你的app.js需要用单一的公共方法init导出对象,Countly会向它传递数据库连接、快速应用实例和快速引用,这样你就可以根据需要添加任何请求
Countly 插件 API 端https://support.count.ly/hc/en-us/articles/360037502212-Plugin-API-Side 示例api.js文件可能如下所示: 12345678910111213141516171819202122232425262728293031323334var plugin = {}, commo
Countly 服务器 APIhttps://support.count.ly/hc/en-us/articles/360037092072-Server-API-Reference 完整的 API 列表,请查看 Countly API 文档页面。https://api.count.ly/reference/rest-api-reference 写入 API用户打开应用程序时的第一个 API 调用
Countly 系统要求 操作系统 12Ubuntu 20.xx, 22.xx Ubuntu 20.xx、22.xxCentOS/Red Hat Enterprise Linux 8.x 软件 12NodeJS 18.xMongoDB 6.0.x CPU Countly 至少需要 2 个 CPU(越多越好)才能获得良好的用户体验。 RAM 至少 2 GB 的 RAM 用于测试目的
Countly 数据库结构-表 countly.alerts countly.alerts_data countly.dashboards countly.widgets countly_out.remoteconfig_parameters{appID} countly_out.remoteconfig_conditions{appID} countly_out.ab_testing_exper
Countly 数据库结构-表 countly.members countly.messages countly_drill.drill_events{ID} countly.plugins countly.reports countly.sources countly.systemlogs countly.users countly.timesofday{appID} countly.data_
Countly 数据库结构-表 countly.density countly.device_details countly.devices countly.events countly.events{ID} countly.funnels countly.graph_notes countly.geos countly.jobs countly.langs countly.logs{appID}
Countly 数据库结构-表 countly.browser countly.campaigns countly.carriers countly.cities countly.crashdata countly.crash_sharecountly.browser需要浏览器插件,如果未启用浏览器插件,则可能不会显示此集合 集合浏览器包含指标中按时间段提供的新浏览器、总数和唯一浏览器的细分。 为