cameră termică pentru Android: o modalitate mai ușoară de a transforma visul dumneavoastră în realitate. Totul nou și bine-des...">
,需要通过父级DOM结构来判断
*/
var trackActionPhone = function (node) {
var nodeInnerText = node.innerText || '';
if (!limitRegLength(nodeInnerText)) return;
var nodeText = trimText(nodeInnerText);
if (nodeText.length < 5 || nodeText.length > 20) return false;
var type =
arguments.length > 1 && arguments[1] !== undefined
? arguments[1]
: 'click';
var str = trimText(node.href || node.innerHTML || '');
if (phoneReg.test(str) && numUseReg.test(str)) {
_paq.push(['trackEvent', type, 'phone', nodeText]);
return true;
}
/** 排查父级嵌套非标签场景,并且对dom的正则校验做一个性能兜底,通过控制innerText的长度,来确保正则的性能 */
var fatherText = trimText(node.parentNode.innerText || '');
if (fatherText.length < 5 || fatherText.length > 20) return false;
var fatherDom = trimText(node.parentNode.innerHTML || '');
if (phoneReg.test(fatherDom) && numUseReg.test(fatherDom)) {
_paq.push(['trackEvent', type, 'phone', nodeText]);
return true;
}
return false;
};
window.addEventListener('click', function (e) {
var node = e.target;
/** 社媒点击 */
var appName = '';
var getAppAriaLabel =
node.ariaLabel || node.parentNode.ariaLabel || '';
if (mediaList.includes(getAppAriaLabel.toLowerCase())) {
appName = getAppAriaLabel;
}
if (
!appName &&
node.nodeName &&
node.nodeName.toLowerCase() === 'a'
) {
appName = getMediaName(node.href) || getMediaName(node.alt);
}
if (
!appName &&
node.nodeName &&
node.nodeName.toLowerCase() === 'img'
) {
appName = getMediaName(node.alt) || getMediaName(node.src);
}
if (
!appName &&
node.nodeName &&
node.nodeName.toLowerCase() === 'i'
) {
appName = getMediaName(node.className);
}
if (appName) {
_paq.push(['trackEvent', 'click', 'contactApp', appName]);
return;
}
/** 联系方式点击 */
if (trackActionPhone(node, 'click')) return;
if (node.nodeName && node.nodeName.toLowerCase() === 'a') {
var val = node.href;
if (!limitRegLength(val)) return;
if (emailReg.test(val)) {
_paq.push(['trackEvent', 'click', 'email', val]);
return;
}
}
if (node.nodeName && node.nodeName.toLowerCase() === 'i') {
var val = node.className;
var content = node.parentNode.href || '';
if (val.includes('email')) {
_paq.push(['trackEvent', 'click', 'email', content]);
return;
}
}
var nodeChildList = node.childNodes;
for (var i = 0; i < nodeChildList.length; i++) {
if (nodeChildList[i].nodeType !== 3) continue;
var val = nodeChildList[i].textContent.replace(/\s?:?/g, '');
if (!limitRegLength(val)) continue;
if (emailReg.test(val)) {
_paq.push(['trackEvent', 'click', 'email', val]);
return;
}
}
trackNumberData(node);
});
window.addEventListener('copy', function (e) {
if (trackActionPhone(e.target, 'copy')) return;
var text = e.target.textContent;
if (!text) return;
var val = text.replace(/\s:?/g, '');
if (!limitRegLength(val)) return;
if (emailReg.test(val)) {
_paq.push(['trackEvent', 'copy', 'email', val]);
return;
}
trackNumberData(e.target);
});
}
trackContactInit();
/**
* 基于custom_inquiry_form.js 以及 form.js 对于询盘表单提交的实现,来反推询盘表单的input标签触发,用来收集意向客户
* 1. 缓存的KEY:TRACK_INPUT_ID_MTM_00;
* 2. 缓存策略 - lockTrackInput:单个页面内,10分钟内,不重复上报
*/
function trackActionInput() {
const CACHE_KEY = 'TRACK_INPUT_ID_MTM_00';
const pathName = window.location.hostname + window.location.pathname;
var lockTrackInput = function () {
try {
const lastCacheData = localStorage.getItem(CACHE_KEY);
if (!lastCacheData) return false;
const cacheData = JSON.parse(lastCacheData);
const cacheTime = cacheData[pathName];
if (!cacheTime) return false;
return Date.now() - cacheTime < 1000 * 60 * 10; // 10分钟内,不重复上报
} catch (error) {
console.error('lockTrackInput Error', error);
return false;
}
};
var setInputTrackId = function () {
try {
const curCacheData = localStorage.getItem(CACHE_KEY);
if (curCacheData) {
const cacheData = JSON.parse(curCacheData);
cacheData[pathName] = Date.now();
localStorage.setItem(CACHE_KEY, JSON.stringify(cacheData));
return;
}
const cacheData = {
[pathName]: Date.now(),
};
localStorage.setItem(CACHE_KEY, JSON.stringify(cacheData));
} catch (error) {
console.error('setInputTrackId Error', error);
}
};
var getInputDom = function (initDom) {
var ele = initDom;
while (ele) {
/**
* isWebSiteForm 是站点的表单
* isChatWindowForm 是聊天窗口的表单
*/
/** 旧模板表单 */
var isWebSiteForm = !!(
/crm-form/i.test(ele.className) && ele.querySelector('form')
);
/** 1:新模板自定义表单、2:Get a Quote 弹框表单 */
var isWebSiteFormNew = !!(
/inquiry/i.test(ele.className) && ele.querySelector('form')
);
if (isWebSiteForm || isWebSiteFormNew) {
_paq.push(['trackEvent', 'formInquiry', 'formInput', 'page']);
setInputTrackId();
return;
}
/** Mkt会话触达-聊天弹框的表单输入: MKT由于是iframe嵌入,所以MKT的上报,会单独写到MKT-form代码上 */
var isInquiryChatForm = !!(
/comp-form/i.test(ele.className) && ele.querySelector('form')
);
if (isInquiryChatForm) {
_paq.push(['trackEvent', 'formInquiry', 'formInput', 'chat']);
setInputTrackId();
return;
}
/** 向上查找父节点 */
ele = ele.parentNode;
}
};
function initInputListener() {
var inputUseDebounce = function (fn, delay) {
var timer = null;
var that = this;
return function () {
var args = Array.prototype.slice.call(arguments);
if (timer) clearTimeout(timer);
timer = setTimeout(function () {
fn.apply(that, args);
}, delay);
};
};
var optimizeGetInputDom = inputUseDebounce(getInputDom, 300);
window.addEventListener('input', function (e) {
/** 如果已经上报过,则不再上报 */
if (lockTrackInput()) return;
optimizeGetInputDom(e.target);
});
}
try {
initInputListener();
} catch (error) {
console.log('initInputListener Error', error);
}
}
trackActionInput();
}
/** 第三方消息上报:目前主要是针对全点托管会话;在msgCollect/index.js中调试,访问test.html */
function thirdMsgCollect() {
/** 先检测是否是stayReal托管:如果stayReal脚本都没有,那么说明当前站点未开启stayReal会话托管 */
const scriptList = Array.prototype.slice.call(
document.querySelectorAll('script'),
);
const checkStayReal = () =>
!!scriptList.find((s) => s.src.includes('stayreal.xiaoman.cn'));
if (!checkStayReal()) return;
/** 缓存当前消息队列的最后一条消息id */
const CACHE_KEY = 'CACHE_KEY_MONITOR';
const setCache = (msgIndex) => {
/** 对缓存KEY进行base64转码处理 */
const cacheMsgIndex = btoa(msgIndex);
localStorage.setItem(CACHE_KEY, cacheMsgIndex);
};
const getCache = () => {
const cacheMsgIndex = localStorage.getItem(CACHE_KEY);
if (cacheMsgIndex) return Number(atob(cacheMsgIndex));
return -1;
};
/** 拉取最新msg列表 */
const pullMsgList = () => {
const msgEleList = Array.prototype.slice.call(
document.querySelectorAll('#chat-list li'),
);
const msgIds = [];
const msgMap = msgEleList.reduce((acc, item) => {
const sendTime = item
.querySelector('.message-data-time')
.textContent.trim();
const sendContent = item.querySelector('.message').textContent.trim();
/** msg带有class:other-message的是访客消息,my-message的是客服消息 */
const isOtherMessage = item
.querySelector('.message')
.classList.contains('other-message');
const msgId = item.querySelector('.message').getAttribute('id');
const msgItemData = {
msgId,
user: isOtherMessage ? 'visitor' : 'official',
time: sendTime,
content: sendContent,
};
msgIds.push(msgId);
acc[msgId] = msgItemData;
return acc;
}, {});
return {
ids: msgIds,
dataMap: msgMap,
};
};
/** 加密并上传消息数据 */
let ENCRYPT_KEY = 'de29f1aab63ab033';
let ENCRYPT_IV = 'b8d2badf875e76ac';
const baseUrl = 'https://cms.xiaoman.cn';
// var getEncryptConfig = function () {
// const url = baseUrl + '/shop-api/innerApi/getKeyIv'
// $.get(
// url,
// function (result) {
// console.log('result', result)
// if (Number(result.code) === 0 && result.data.key && result.data.iv) {
// ENCRYPT_KEY = result.data.key
// ENCRYPT_IV = result.data.iv
// uploadMsgData()
// } else {
// /** 如果获取失败,则重试 */
// setTimeout(() => {
// getEncryptConfig()
// }, 1000)
// }
// },
// 'json'
// )
// }
// getEncryptConfig()
const encryptMsg = function (msgData) {
const enc = new TextEncoder();
// 转字节
const keyBytes = enc.encode(ENCRYPT_KEY);
const ivBytes = enc.encode(ENCRYPT_IV);
const plainBytes = enc.encode(msgData);
// 导入密钥并加密
return crypto.subtle
.importKey('raw', keyBytes, { name: 'AES-CBC' }, false, ['encrypt'])
.then(function (cryptoKey) {
return crypto.subtle.encrypt(
{ name: 'AES-CBC', iv: ivBytes },
cryptoKey,
plainBytes,
);
})
.then(function (encryptedBuffer) {
// 转 base64 返回
return btoa(
String.fromCharCode(...new Uint8Array(encryptedBuffer)),
);
})
.catch((err) => {
return Promise.reject(err);
});
};
let uploadFlag = false;
const uploadMsgData = function () {
if (uploadFlag) return;
uploadFlag = true;
const { ids, dataMap } = pullMsgList();
let cacheMsgIndex = getCache();
const msgLen = ids.length;
if (!msgLen) {
// 消息DOM未挂载 || 消息DOM已挂载,但是消息列表为空
uploadFlag = false;
return;
}
if (msgLen - 1 < cacheMsgIndex) {
/** 针对站点挂后台一段时间,消息列表会自动塞入重复消息,导致消息有重复,刷新后又重置回正常消息列表,所以这里需要更新锚点下标 */
cacheMsgIndex = msgLen - 1;
setCache(cacheMsgIndex);
uploadFlag = false;
return;
}
if (msgLen - 1 === cacheMsgIndex) {
// 缓存的最后一次发送的消息ID是最后一条(说明当前消息均已经上报),则不跳过本地上报
uploadFlag = false;
return;
}
const currentMsgIds = ids.slice(cacheMsgIndex + 1, msgLen);
const currentMsgData = currentMsgIds.map((id) => dataMap[id]);
const mtmId = window.matomo_site_id_cookie_key || ''; // 获取mtm会话id
const msgBody = {
mtmId,
curl: window.location.href,
msgList: currentMsgData,
};
const msgBodyStr = JSON.stringify(msgBody);
encryptMsg(msgBodyStr)
.then(function (encryptedMsg) {
console.log('encryptedMsg:', encryptedMsg, msgBodyStr);
const url = baseUrl + '/shop-api/External/ListenSiteActiveStatus';
$.ajax({
type: 'POST',
url,
data: JSON.stringify({ d_v: encryptedMsg }),
contentType: 'application/json',
success: function (result) {
if (Number(result.code) === 0) {
// 更新消息队列
setCache(msgLen - 1);
}
uploadFlag = false;
},
error: function (err) {
console.error(err, '请求异常');
uploadFlag = false;
},
});
})
.catch((err) => {
console.error(err, '数据加密失败');
uploadFlag = false;
});
};
/** 监控chat-list的DOM变更 */
const initChatListObserver = () => {
// 需要监听的 DOM 节点
const target = document.getElementById('chat-list');
if (!target) return;
// 回调函数
const callback = function (mutationsList, observer) {
for (const mutation of mutationsList) {
console.log('mutation', mutation);
if (mutation.type === 'childList') {
uploadMsgData();
}
}
};
// 配置
const config = {
childList: true, // 监听子节点的增删
subtree: true, // 是否也监听后代节点
};
// 创建 observer
const observer = new MutationObserver(callback);
// 开始监听
observer.observe(target, config);
};
let testCount = 30;
let itv = null;
const checkChatDom = () => !!document.querySelector('#vc-model');
const initTalkCheck = () => {
itv = setTimeout(() => {
console.log('checkChatDom', checkChatDom(), testCount);
if (!checkChatDom() && testCount > 0) {
testCount--;
initTalkCheck();
return;
}
clearTimeout(itv);
uploadMsgData();
initChatListObserver();
}, 1500);
};
initTalkCheck();
}
try {
gtmTrack();
thirdMsgCollect();
console.log('inserted gtm code');
} catch (error) {
console.error('gtmTrack Error', error);
}
});
})();
Ca pe cele pe care le vezi în filme, poate ca un spion secret sau un detective suprămatematic? Un camера Termică pentru Android : un mod mai ușor de a-ți face visul realitate. Aplicația extensibilă termică, reînnoită și bine concepută, este destinată unei selecții de telefoane și include îmbunătățiri și inovații mai bune, inclusiv pentru telefonul mobil Android. Această uimitoare instrumente te permite să vezi căldura și să faci poze unice în care temperatura este marcată folosind telefonul tău. Mai concretă pentru majoritatea noastră decât zburarea prin obiecte, cu toate acestea! Pe de altă parte, dintr-o varietate largă de motive, să poți distinge cât de fierbinte sau rece este ceva poate reprezenta o înțelegere destul de utilă. LSJ Technology a făcut posibil acest lucru prin crearea unei camere termice care se poate monta pe un telefon android, pentru ca tu să te poți uita convenabil la temperatura camerii tale, a vehiculului tau sau chiar a mâncării! De exemplu, dacă ai o casă și te simți că este cald în vara, poți să scoți această cameră pentru a afla regiunile cu temperaturi crescute. În același timp, în iarnă, aceasta poate să-ți ajute să verifici cât de eficient este sistemul de încălzire și să păstrezi casa ta căldurie. Atunci nu trebuie să te îngrijorezi de vreme! — Clever, nu? Da, bine, această cameră termică care de fapt este un telefon Android de la LSJ Technology este distractivă de jucat cu, dar are o fațetă foarte serioasă, așa cum ne dăm curând seama. Acest dispozitiv fantastic poate detecta căldura emisă de oameni sau animale în întunericul complet. Gândește-te că ești în pădure, la câmping, noaptea. Poate fi folosită când te întorci la cort sau pentru a te asigura că nu sunt animale în jurul cortului, fără să trebuiască să aprinzi o lanternă. E ca și cum ai avea ochelari de vedere noapte speciali care te lasă să vezi în întuneric! The camerală termică ieftină pentru Android nu sunt doar o cameră obișnuită, ele sunt un instrument profesional care este capabil să vă ofere diferențe de temperaturi foarte precise. Acest lucru este foarte util pentru ingineri, construcționeri și alții care au nevoie să verifice temperatura în comparație cu alte motoruri (alte unelte sau clădiri). Cea mai bună parte este că este atât de ușor de folosit. Tot ceea ce trebuie să faci este să îndrepteți telefonul dvs. spre ceea ce doriți să măsurați, și camera termică face tot treaba pentru tine! Acest lucru implică faptul că poți obține rezultatul în câteva secunde, chiar dacă nu ești un specialist. The camerală termică pentru Android de la LSJ Technology este un gadget extrem de versatil, pe care îl poți folosi într-o varietate largă de situații. Poți să îl folosești și pentru proiecte DIY, cum ar fi căutarea curgerilor de aer din casa ta care ar putea să-ți forțeze sistemul de încălzire să lucreze mai mult. Prin urmare, acestea reprezintă un mod excelent de a economisi pe cheltuielile de energie. Poți să-l duci în excursii de camping și mers pe podi, să lăși copiii să-l folosească pentru a vedea în întuneric când fac camping sau pentru jocuri de ascundere cu vizionare noapte, chiar să încerci să privi focul de la tabără pentru a-ți testa cât de fierbinte este! Este de asemenea perfect pentru experimente științifice! Acest lucru te va permite, de asemenea, să măsori temperatura lichidelor sau a corpurilor solide, făcând astfel din știință ceva și mai interesant. Sursa imaginii: LIFEHACKS Ai gândit vreodată de ce cheltuiala ta de electricitate este atât de mare? Acest lucru poate fi legat și de pierderile de căldură din casa ta care permit iesirea aerului cald. Când căldura din casa ta scapă în exterior, acest fenomen se numește pierdere de căldură, ceea ce duce la munca mai intensă a sistemului de încălzire decât ar trebui. Un mod de a face asta este prin utilizarea unei camere termice pe telefon android de la LSJ Technology pentru a distinge între cald și rece. Poți economisi bani, în funcție de suma pe care o cheltuiesti lunar pentru energie, iar electricitatea va fi mai eficientă prin folosirea unei cantități mai mici. Este o situație câștig-câștig! Noi, de la LSJ, suntem conștienți de importanța oferirii clienților noștri atât a produselor de calitate, cât și a unui serviciu excepțional. Ofertăm o garanție de unul sau cinci ani pentru a demonstra încrederea noastră în durabilitatea și performanța produselor noastre. Suntem specializați în cercetarea și dezvoltarea camerelor termice pentru telefoane Android, pentru a ne asigura că produsele noastre îndeplinesc cele mai înalte standarde. Ca producători, menținem procese stricte de control al calității, de la materiile prime până la producția finală. Ofertăm o gamă variată de produse care se potrivesc nevoilor oricărui client. Stocul nostru de materii prime, componente și alte produse este suficient pentru a asigura livrarea promptă. Vă rambursăm până la 5% din valoarea comenzii, dacă nu putem livra comanda în momentul solicitat. Pentru a vă ajuta să folosiți produsele noastre în cel mai eficient mod, oferim videoclipuri tutoriale detaliate. În plus, putem organiza instruire pe loc, realizată de echipa noastră tehnică, adaptată în mod specific nevoilor dumneavoastră, pentru a vă asigura că puteți utiliza produsele noastre cu încredere și ușurință. Alegeți LSJ pentru produse fiabile și de înaltă calitate, precum și pentru un serviciu excelent al clienților. Oferim sprijin Departamentelor de Pompieri și Salvare, precum și serviciilor de Siguranță Publică și telefoanelor Android cu camere termice. LSJ oferă echipamente de ultimă generație pentru stingererea incendiilor, efectuarea operațiunilor de căutare și salvare și lucrul în medii periculoase, într-o varietate de industrii. Camere termice pentru stingerea incendiilor: Am cercetat și proiectat două tipuri de camere termice care oferă trei opțiuni de rezoluție: 256×192, 384×288 și 640×512. Acestea pot monitoriza temperaturi până la 2000 °C. Echipamente pentru căutare și salvare: Ofertăm o gamă de produse, inclusiv detectoare de gaze, monitoare de stabilitate și sisteme de monitorizare a mișcării. Camere termice industriale: În afară de camerele termice destinate stingerii incendiilor, LSJ oferă camere termice portabile pentru detectarea scurgerilor de apă, inspecția clădirilor, reparații electronice, identificarea pierderilor de căldură în podelele încălzite și inspecția sistemelor HVAC. Scopuri termice: Optica noastră de vedere nocturnă este perfectă pentru observarea în condiții de întuneric. Sunt, de asemenea, foarte populare printre vânători. Se montează ușor pe puști. LSJ este dedicată ofertei de echipamente de imagistică termică și echipamente de salvare de înaltă calitate, care satisfac cerințele diferitelor industrii, sporind eficiența și siguranța. Alegeți LSJ pentru cele mai sofisticate și eficiente soluții. Aveți încredere în LSJ ca partener principal în domeniul căutării și salvării urbane. Din 2013, LSJ dezvoltă, produce și furnizează camere termice pentru telefoane Android, echipamente pentru intervenții de salvare și echipamente pentru pompieri. LSJ este acreditată conform standardelor ISO9001, CE, ROHS și MSDS și a obținut peste 30 de brevete. Ca firmă lider, investim semnificativ în departamentul nostru de proiectare și cercetare. În 2024, LSJ a participat la patru evenimente importante: INTERSEC, Securika, a 18-a ediție a Defence Services Asia și a 3-a ediție a National Security Asia din Malaysia, precum și la evenimentul NFPA din Statele Unite ale Americii. În 2025, suntem înregistrați să participăm la INTERSEC 2025, care va avea loc în Dubai, între 14 și 16 ianuarie. Vom prezenta camerele termice pentru intervenții de stingere a incendiilor, precum și dispozitive de supraveghere audio și video, detectoare de gaze și radar 3D, alături de alte produse. Vă invităm cu plăcere să ne vizitați la standul nostru. Cu o experiență de 11 ani în producție, LSJ se specializează în redesenarea și fabricarea de produse noi, adaptate în mod specific condițiilor de utilizare ale clienților noștri, îmbunătățind în mod continuu funcționalitățile și reducând costurile produselor. LSJ deține, de asemenea, o experiență vastă în domeniul căutării și salvării în mediul urban. În timpul cutremurului din Turcia din 2023, detectorul de viață cu radar LSJ a jucat un rol esențial în eforturile de salvare desfășurate de Echipa Chineză de Salvare „Cerul Albastru”. Alegeți LSJ pentru a beneficia de cele mai recente tehnologii, personalizate în mod specific nevoilor dumneavoastră. La LSJ suntem experți în dezvoltarea echipamentelor de înaltă calitate pentru căutare și salvare urbană, concepute pentru a îndeplini cele mai înalte standarde internaționale.
Servicii pre-vânzare:
Suntem aici să vă ajutăm încă de la început. Ofertăm consultanță completă pentru a înțelege nevoile dumneavoastră și pentru a elabora soluții personalizate. De asemenea, punem la dispoziție fișe tehnice detaliate ale produselor, inclusiv ale camerelor termice pentru telefoane Android, astfel încât să dețineți toate informațiile necesare pentru a lua o decizie bine fundamentată.
Servicii de vânzare:
În procesul de vânzare, vă asigurăm o experiență fluidă și eficientă. Garantăm livrarea produselor dumneavoastră la timp și în stare perfectă, datorită sistemului nostru eficient de comandă și unui control riguros al calității. Ofertăm, de asemenea, livrare „de la ușă la ușă”.
Servicii post-vânzare:
Relația noastră cu dumneavoastră nu se încheie odată ce ați primit produsele noastre. Suportul nostru complet post-vânzare include asistență la instalare, instruire utilizatori și întreținere. Dispunem de o echipă de asistență clienți disponibilă 24 de ore pe zi, care poate rezolva orice întrebare sau problemă și vă garantează satisfacția. Ofertăm o garanție de 3 ani pentru toate echipamentele achiziționate de la LSJ. De asemenea, puteți beneficia de servicii post-vânzare din partea noastră.
Alegerea LSJ înseamnă că alegeți fiabilitate, calitate superioară, calitate de top și un suport fără egal. Așteptăm cu nerăbdare să devenim partenerii dumneavoastră în domeniul căutării și salvării urbane, precum și în cel al stingerii incendiilor. Drepturi de Autor © Beijing LSJ Technology Development Co., Ltd. Toate Drepturile Rezervate
-
Politica de confidențialitate
cameră termală pentru telefon Android
Experimentează Puterea Detectării de Căldură cu Camere Termice pentru Telefoane Android

Obține Măsurătorile de Temperatură Accurate cu Camere Termice de Calitate Superioară pentru Telefoane Android

Descoperă Versatilitatea Camerelor Termice pentru Telefoane Android pentru Toate Nevoile Tale de Imaginare Termică

Detectează Fără Să te Străduiești Scurgerile de Căldură și Pierderile de Energie cu Camere Termice pentru Telefoane Android
Why choose LSJ Technology cameră termală pentru telefon Android?
Asigurarea Calității și a Livrării În Timp: Angajamentul LSJ de Satisfacere a Clientului
O lanțuri de aprovizionare completă cu echipamente pentru căutare și salvare urbană
Inovând ca fabricant de echipamente de căutare și salvare cu performanță înaltă
De Ce LSJ Poate Fi Producătorul și Furnizorul Tău Principal?
Categorii de produse conexe
Nu găsiți ceea ce căutați?
Solicitați acum o ofertă
Contactați consultanții noștri pentru mai multe produse disponibile.Contactați-ne