react-native-lib-cus-com
Version:
react-native 自定义辅助组件库,完美的网路请求,带加载条,可上传、下载文件,等等多种ui,可自定义删除;可节省应用级软件的开发时间
120 lines (104 loc) • 3.4 kB
JavaScript
// import * as TD from 'react-native-talkingdata';
import {Components} from "./../StackComponent";
const TD = Components.react_native_talkingdata;
// import {HttpUrls} from "./HttpUrls";
import {Tools} from "./Tools";
/**
* talkingdata app统计分析
* **/
export class TalkingData{
/**
* 事件类别
* **/
static EventTabel = {
http:"http",// 网络请求事件
func:'func',//功能事件
userEvent:'userEvent',//用户事件
}
/**
* 追踪页面开始 与trackPageEnd成对使用
* @param page_name string,//页面名
* **/
static trackPageBegin(page_name){
TD.trackPageBegin(page_name);
}
/**
* 追踪页面结束 与trackPageEnd成对使用
* @param page_name string,//页面名
* **/
static trackPageEnd(page_name){
TD.trackPageEnd(page_name);
}
/**
* 追踪事件
* @param event_name string,//事件名
* @param event_label string,//事件类别
* @param parameters string,//事件参数
* **/
static trackEvent(event_name, event_label, parameters){
TD.trackEvent(event_name, event_label, parameters);
}
/**
* 获取URL的key
* @param url string,//接口地址
* **/
static getUrlKey(url){
return "";
let key = null;
Object.keys(HttpUrls.urlSets)
.forEach(k => {
if(HttpUrls.urlSets[k] == url){
key = k;
}
});
return key;
}
/**
* 追踪事件 http
* @param event_name string,//事件名
* @param url string,//接口地址
* @param type string,//请求类型
* @param params string,//事件参数
* **/
static trackEventHttp(event_name, url,type,params={}){
params.userId = Tools.userConfig.userInfo == null
? ''
: Tools.userConfig.userInfo.id;
params.user_id = params.userId;
params.phone = Tools.userConfig.userInfo == null
? ''
: Tools.userConfig.userInfo.phone;
TD.trackEvent(event_name + "_" + HttpUrls.IPConfig.serviceType + "_" + type + "_" + this.getUrlKey(url),
this.EventTabel.http,
params);
}
/**
* 设置设备位置
* **/
static setLocation(){
navigator.geolocation.getCurrentPosition(
(location) => {
/*var result = "速度 :" + location.coords.speed +
"\n经度:" + location.coords.longitude +
"\n纬度:" + location.coords.latitude +
"\n准确度:" + location.coords.accuracy +
"\n行进方向:" + location.coords.heading +
"\n海拔:" + location.coords.altitude +
"\n海拔准确度:" + location.coords.altitudeAccuracy +
"\n时间戳:" + location.timestamp;*/
TD.setLocation(location.coords.latitude, location.coords.longitude);
},
(error) => {
//alert(JSON.stringify(error))
this.trackEvent("定位失败",this.EventTabel.func,error);
},
{enableHighAccuracy: false, timeout: 20000, maximumAge: 1000}
);
}
/**
* 获取设备ID
* **/
static getDeviceID(){
return TD.getDeviceID();
}
}