/** * 接口调用成功回调 */ export type ReportSuccess = { /** * 成功的详细信息 */ errMsg : string } /** * 错误码 */ export type ReportErrorCode = /** * 应用已集成uni统计,但未关联服务空间,请在uniCloud目录右键关联服务空间 */ 61000 | /** * 统计服务尚未初始化,需在`main.uts`中引入统计插件 */ 61001 | /** * name参数是uni-app-launch时, options 参数未填写 */ 61002 | /** * name参数未填写 */ 61003 | /** * name参数类型错误,应为`String`类型 */ 61004 | /** * name参数长度超限,最大不超过255 */ 61005 | /** * options参数错误,应为String或Object类型 */ 61006 | /** * options参数为String类型时,长度超限,最大不超过255 */ 61007 | /** * name参数为title时,options参数类型错误,应为String */ 61008 /** * 错误回调 */ export interface ReportError extends IUniError { /** * 错误码 */ errCode : ReportErrorCode } /** * 接口调用失败回调 */ export type ReportFail = ReportError /** * 接口调用成功回调 */ export type ReportSuccessCallback = (res : ReportSuccess) => void /** * 接口调用失败回调 */ export type ReportFailCallback = (err : ReportFail) => void /** * 接口调用结束回调(调用成功、失败都会执行) */ export type ReportCompleteCallback = (res : any) => void /** * Report 参数定义 */ export type ReportOptions = { /** * 自定义事件名称,内置名称不允许覆盖,可选值: * `uni-app-launch`:应用启动,options 参数必填,值为 onLaunch 返回值 * `uni-app-show`:应用进入前台 * `uni-app-hide`:应用进入后台 * `uni-app-error`:应用发生错误,options 参数必填,值为错误信息,类型为String * `title`:标题采集 * `自定义name`:用户自定义 */ name : string /** * 额外参数 */ options ?: any | null /** * 接口调用成功的回调函数 */ success ?: ReportSuccessCallback | null, /** * 接口调用失败的回调函数 */ fail ?: ReportFailCallback | null, /** * 接口调用结束的回调函数(调用成功、失败都会执行) */ complete ?: ReportCompleteCallback | null } /** * 自定义事件信息 * @param {ReportOptions} options * * @platforms APP-IOS = ^9.0,APP-ANDROID = ^22 * @since 4.25 */ export type Report = (options : ReportOptions) => void export interface Uni { /** * 统计自定义事件 * @description uni统计自定义上报方法。 * @param {ReportOptions} options 自定义事件参数 * @uniPlatform { * "app": { * "android": { * "unixVer": "4.33" * }, * "ios": { * "unixVer": "4.33" * } * }, * "web": { * "unixVer": "4.33" * } * } * @example * ```typescript * uni.report({ * name:'uni-app-launch', * success(res) { * console.log(res); * }, * fail(err) { * console.log(err); * } * }) * ``` * @remark * - 该接口需要同步调用 */ report(options : ReportOptions) : void; } // 统计插件参数类型 export type UniStatOptions = { /** * 是否开启debug模式 * @defaultValue false */ debug ?: boolean /** * 前端数据上报周期 ,单位s * @defaultValue 10 */ reportInterval ?: number /* 多服务空间配置 */ uniCloud ?: UniCloudInitOptions /* 采集项配置 */ collectItems ?: UniStatCollectItemsOptions } export type UniStatCollectItemsOptions = { /** * 是否开启推送PushClientID的采集 * @defaultValue false */ uniPushClientID ?: boolean /** * 是否开启页面数据采集 * @defaultValue true */ uniStatPageLog ?: boolean } /** * 应用参数扩展 */ export type OnLaunchOptionsWithCst = { /** 页面路径 */ path ?: string /** 上报时机,参看 ReprotCstType */ cst ?: number /** 场景值 */ scene ?: number /** 参数 */ query ?: string }; /** * 停留时长 */ export type ResidenceTimeReturn = { /** 停留时长 */ residenceTime : number /** 是否超时 */ overtime : boolean } /** * 路由 */ export type RouteParams = { path : string fullpath : string } /** * 页面标题 */ export type TitleConfigParams = { /** pages.json 中的标题 */ config : string /** setNavigationBarTitle 获取的标题*/ page : string /** 自定义上报的标题 */ report : string /** 统计数据类型 */ lt : string } /** * 页面参数 */ export type PageParams = { /** 当前页面的完整 url,包含参数在内。最多255字符 */ url ?: string /** pages.json 中定义的页面的 title,获取不到时,可以不传 */ ttpj ?: string /** 通过接口 uni.setnavigationbartitle 设置的 title,获取不到时,可以不传 */ ttn ?: string /** 通过 uni.report 上报的页面的 title,获取不到时,可以不传 */ ttc ?: string /** title 组件中设置的 title,获取不到时,可以不传 */ ttct ?: string /** 上个页面的完整 url */ urlref : string /** 上个页面停留时间,单位为秒,不足1秒按1秒计。 url */ urlref_ts : number /** 上个页面的标题 */ urlref_tt ?: string } /** * 上传 unicloud 参数 */ export type RequestData = { /** 统计 SDK 版本号 */ usv : string /** 发送请求时的时间戮 */ t : number /** 组合数据 */ requests : string } /** * 用户自定义服务空间配置信息 */ export type CustomUnicloudConfig = { /** 服务空间id */ spaceId : string, /** 云厂商 */ provider : string, /** clientSecret */ clientSecret ?: string /** secretKey */ secretKey ?: string /** secretId */ secretId ?: string } /** * 事件类型 */ export type EventParams = { /** 事件名字*/ key : string /** 事件内容 */ value ?: string } /** * 统计默认值 */ export type StatDefault = { /** 设备标识 */ uuid : string /** uni-app 应用 Appid */ ak : string /** 手机系统 */ p : string /** 平台类型 */ ut : string /** 原生平台包名、小程序 appid */ mpn ?: string /** 统计 sdk 版本 */ usv ?: string /** 应用版本,仅app */ v ?: string /** 渠道信息 */ ch ?: string /** 国家 */ cn ?: string /** 省份 */ pn ?: string /** 城市 */ ct ?: string /** 上报数据时的时间戳 */ t : number /** 页面标题 */ tt ?: string /** 手机品牌 */ brand ?: string /** 手机型号 */ md ?: string /** 手机系统版本 */ sv ?: string /** x程序 sdk version */ mpsdk ?: string /** 小程序平台版本 ,如微信、支付宝 */ mpv ?: string /** 语言 */ lang ?: string /** pixelRatio 设备像素比 */ pr ?: number /** windowWidth 可使用窗口宽度 */ ww ?: number /** windowHeight 可使用窗口高度 */ wh ?: number /** screenWidth 屏幕宽度 */ sw ?: number /** screenHeight 屏幕高度 */ sh ?: number /** 场景值 */ sc ?: number /** 统计数据类型 */ lt ?: string /** 老用户错误的的设备id */ odid ?: string url ?: string /** 首次访问时间戳。需要保存在 storage 中。用户首次访问时,取当前时间。*/ fvts ?: number /** 上次访问时间戳。需要保存在 storage 中。用户首次访问时,设置为0。*/ lvts ?: number /** total visit count 用户到本次访问为止总共的访问次数。*/ tvc ?: number /** 上报时机,参看 ReprotCstType */ cst ?: number urlref_ts ?: number urlref ?: string // 标题相关 /** pages.json 中定义的页面的 title,获取不到时,可以不传 */ ttpj ?: string /** 通过接口 uni.setnavigationbartitle 设置的 title,获取不到时,可以不传 */ ttn ?: string /** 通过 uni.report 上报的页面的 title,获取不到时,可以不传 */ ttc ?: string /** title 组件中设置的 title,获取不到时,可以不传 */ ttct ?: string /** push id */ cid ?: string /** 自定义事件key */ e_n ?: string /** 自定义事件value */ e_v ?: string /** 纬度 */ lat ?: string /** 经度 */ lng ?: string /** 网络 */ net ?: string /** 错误信息 */ em ?: string } /** * 应用首次启动上报参数 */ export type AppShowReportParams = { /** uni-app 应用 Appid */ uuid : string /** 设备标识 */ ak : string /** 统计数据类型 */ lt : string /** 平台类型 */ ut : string /** x程序 sdk version */ mpsdk : string /** 小程序平台版本 ,如微信、支付宝 */ mpv : string /** 原生平台包名、小程序 appid */ mpn : string /** 应用版本,仅app */ v : string /** 手机系统 */ p : string /** 手机系统版本 */ sv : string /** 设备网络 */ net : string /** 手机品牌 */ brand : string /** 手机型号 */ md : string /** 语言 */ lang : string /** 纬度 */ lat : string /** 经度 */ lng : string /** pixelRatio 设备像素比 */ pr : number /** windowWidth 可使用窗口宽度 */ ww : number /** windowHeight 可使用窗口高度 */ wh : number /** screenWidth 屏幕宽度 */ sw : number /** screenHeight 屏幕高度 */ sh : number /** 页面启动的url */ url : string /** 页面标题 */ tt : string /** 渠道信息 */ ch : string /** 首次访问时间戳。需要保存在 storage 中。用户首次访问时,取当前时间。*/ fvts : number /** 上次访问时间戳。需要保存在 storage 中。用户首次访问时,设置为0。*/ lvts : number /** 国家 */ cn : string /** 省份 */ pn : string /** 城市 */ ct : string /** 场景值 */ sc : number /** total visit count 用户到本次访问为止总共的访问次数。*/ tvc : number /** 统计 sdk 版本 */ usv : string /** 上报数据时的时间戳 */ t : number /** 老用户错误的的设备id */ odid : string /** 上报时机,参看 ReprotCstType */ cst : number } /** * 应用进入后台上报参数 */ export type AppHideReportParams = { /** uni-app 应用 Appid */ ak : string /** 设备标识 */ uuid : string /** 统计数据类型 */ lt : string /** 平台类型 */ ut : string /** 手机系统 */ p : string /** 上个页面的完整 url */ urlref : string /** 上个页面停留时间,单位为秒,不足1秒按1秒计。 */ urlref_ts : number /** 渠道信息 */ ch : string /** 统计 sdk 版本 */ usv : string /** 上报数据时的时间戳。 */ t : number } /** * 页面切换上报参数 */ export type PageReportParams = { /** uni-app 应用 Appid */ ak : string /** 设备标识 */ uuid : string /** 统计数据类型 */ lt : string /** 平台类型 */ ut : string /** 手机系统 */ p : string /** 当前页面 url */ url : string // 标题相关 /** pages.json 中定义的页面的 title,获取不到时,可以不传 */ ttpj : string /** 通过接口 uni.setnavigationbartitle 设置的 title,获取不到时,可以不传 */ ttn : string /** 通过 uni.report 上报的页面的 title,获取不到时,可以不传 */ ttc : string /** title 组件中设置的 title,获取不到时,可以不传 */ ttct : string /** 上个页面的完整 url */ urlref : string /** 上个页面停留时间,单位为秒,不足1秒按1秒计。 */ urlref_ts : number /** 渠道信息 */ ch : string /** 统计 sdk 版本 */ usv : string /** 上报数据时的时间戳。 */ t : number /** 上报时机,参看 ReprotCstType */ cst ?: number } export type ErrorCallback = (is_err : boolean, code : ReportErrorCode) => void