house-middleware-sdk
Version:
58 hosue rn native sdk
100 lines (93 loc) • 3.24 kB
JavaScript
/**
* 老埋点方法
* @param pageType
* @param actionType
* @param cate
* @param params
*/
export function writeLog(pageType, actionType, cate, params) {
if (!actionType) {
console.error("actionType不能为空");
return;
}
if (typeof actionType !== "object") {
console.error("actionType应该类似{'wb':'xxx','ajk':'123','jjr':'xxx'},'wbtz':'xxx'}");
return;
}
if (!actionType.wb && !actionType.ajk && !actionType.jjr && !actionType.wbtz) {
console.error("至少有一个平台设置actionType");
return;
}
require("house-middleware-sdk/utils/findImpl")
.default(
() => writeLogWbImpl(String(pageType), String(actionType.wb), String(cate), null, params),
() => writeLogAjkImpl(String(pageType), String(actionType.ajk), String(cate), null, params),
() => writeYdjjrImpl(String(pageType), String(actionType.jjr), String(cate), null, params),
() => writeLogWbtzImpl(String(pageType), String(actionType.wbtz), String(cate), null, params)
);
}
/**
* 新埋点 带sidDict参数
* @param pageType string
* @param actionType string
* @param cate string
* @param sidDict map
* @param params map
*/
export function writeLogWithSid(pageType, actionType, cate, sidDict, params) {
if (!actionType) {
console.error('actionType不能为空');
return;
}
if (typeof actionType !== 'object') {
console.error('actionType应该类似{\'wb\':\'xxx\',\'ajk\':\'123\',\'jjr\':\'123\',\'wbtz\':\'123\'}');
return;
}
if (!actionType.wb && !actionType.ajk && !actionType.jjr && !actionType.wbtz) {
console.error("至少有一个平台设置actionType");
return;
}
require('house-middleware-sdk/utils/findImpl')
.default(
() => writeLogWbImpl(String(pageType), String(actionType.wb), String(cate), sidDict, params),
() => writeLogAjkImpl(String(pageType), String(actionType.ajk), String(cate), sidDict, params),
() => writeYdjjrImpl(String(pageType), String(actionType.jjr), String(cate), sidDict, params),
() => writeLogWbtzImpl(String(pageType), String(actionType.jjr), String(cate), sidDict, params)
);
}
function writeLogWbImpl(pageType, actionType, cate, sidDict, params) {
let pArray = [];
if (params) {
Object.keys(params).forEach(function (key) {
pArray.push(String(params[key]))
});
}
let paramsObject = {
pagetype: pageType,
actiontype: actionType,
cate: cate,
paramsArray: pArray,
paramsJson: sidDict ? sidDict : {}
};
require("@w/wbapp").setWebLog(paramsObject);
}
function writeLogAjkImpl(pageType, actionType, cate, sidDict, params) {
let pObj = {};
if (params) {
Object.keys(params).forEach(function (key) {
pObj[key] = String(params[key])
});
}
pObj["cate"] = String(cate);
if (sidDict) {
pObj['sid'] = JSON.stringify(sidDict);
}
require("ajkapp").writeLog(actionType, pObj);
}
function writeYdjjrImpl(pageType, actionType, cate, sidDict, params) {
require('react-native').NativeModules?.WmdaModule?.writeLog(actionType, params);
}
//TODO:{58同镇 老版埋点 ...}
function writeLogWbtzImpl(pageType, actionType, cate, sidDict, params) {
writeLogWbImpl(pageType, actionType, cate, sidDict, params);
}