Vantrue Real-World Capture

Authentic driving scenarios captured with clarity, showcasing real moments in 4K.

Dash Cam Series

Vantrue currently offers five product series, providing diverse options tailored to the needs of different user groups and delivering practical solutions for a wide range of usage scenarios.

vantrue nexus n5b dash cam shown with multiple camera angles in front of a large white letter n

Nexus Series8

vantrue dash cam and accessories shown with multiple camera angles in front of a large white letter e

Element Series5

vantrue s1 pro dash cam and its dual cameras displayed in front of a large white letter s

Sonnect Series6

vantrue e360 dash cam showcasing its 360-degree panoramic recording feature with a family inside the car

360 Series1

vantrue motorcycle dash cam with dual lenses and control module displayed in front of a large white letter f

Falcon Series1

Details in the Pixel

PlatePix Tech Resolution

VANTRUE's exclusive imaging technology that combines with HDR and Sony's STARVIS 2 technology makes the dash cam's license plate capturing ability 1.5x sharper than others.

vantrue dash cam night footage showing license plate recognition of cars at city intersection

4K night vision

Others

vantrue dash cam night footage showcasing platepix, starvis 2 and hdr technologies for clear license plate recognition

PlatePix tech vision

VANTRUE

As Seen In

Trusted by leading tech and automotive media worldwide.

tom's guide logo text in blue on a transparent checkered background

We know VanTrue can create an impressive dash cam, as the company's N4 3 shows (it was our previous Best Overall pick).

forbes logo text in black on a transparent checkered background

Vantrue's PlatePix technology is a really clever way of enhancing the image to ensure you can read number plates.

road & track logo text in black on a transparent checkered background

The Vantrue E1 Pro offers very detailed video recording in a small bundle.

techradar logo with blue 'tech' text, black 'radar' text, and a pink dot on a transparent checkered background

The Vantrue Nexus 5S captures clear, comprehensive video constantly and consistently.

`; function toggleWidget() { loadAppstleLoyaltyWidget(); if (_ALConfig?.widget_setting?.widgetType?.toUpperCase() === 'LAUNCHER' && _ALConfig?.widget_setting?.forceRedirectDedicatedPage === true) { window.open(`/${_ALConfig?.proxy_path_prefix}`); } else { document.querySelector('#appstle_loyalty_iframe')?.classList?.toggle('open'); showAppstleLoyaltyWidget(); setTimeout(function() { document.querySelector('#appstle_loyalty_iframe')?.classList?.toggle('show-close-icon'); }, 900); } } const loadAppstleLoyaltyWidget = () => { var iframe = document.querySelectorAll('#appstle_loyalty_iframe'); iframe.forEach(function(item) { item.contentWindow._ALConfig = _ALConfig; item.contentWindow.document.open('text/html', 'replace'); item.contentWindow.document.write(alIframeSrc); item.contentWindow.document.close(); }); }; const launcherDataType = _ALConfig?.widget_setting?.launcherDataType || 'POINTS'; const loyaltyButtonTitle = document.getElementById('loyalty-widget-title'); if (_ALConfig?.shop_labels?.widgetTitle) { loyaltyButtonTitle.innerHTML = parseHtmlStringContent(_ALConfig?.shop_labels?.widgetTitle); } (function() { const { customerLoyalty, widget_setting } = _ALConfig || {}; if (!customerLoyalty) return; const showTier = widget_setting?.showTierName; const launcherButtonElement = document.querySelector('#appstle-loyalty-button'); const pointsEl = document.querySelector('.loyalty_widget_available_points'); if (!pointsEl) return; const fmt = new Intl.NumberFormat(); const { storeCreditBalance = 0, availablePoints = 0, currentVipTier = '' } = customerLoyalty; let displayValue; if (launcherDataType === 'STORE_CREDITS') { const n = Number(storeCreditBalance) || 0; displayValue = fmt.format(formatNumberByPointRoundType(n)); } else if ((launcherDataType === 'VIP_TIER') && currentVipTier) { displayValue = String(currentVipTier); } else { const n = Number(availablePoints) || 0; displayValue = fmt.format(formatNumberByPointRoundType(n)); } pointsEl.textContent = displayValue; launcherButtonElement?.classList.add('appstle_show_points'); })(); function handleDeepLink() { const loyaltyDeepLinks = [ '#appstle-loyalty', '#appstle-refer', '#appstle-loyalty-earn-rewards', '#appstle-loyalty-redeem-rewards', '#appstle-loyalty-referrals', '#appstle-loyalty-vip-program' ]; if (!_ALConfig?.widget_setting?.showWidget || !loyaltyDeepLinks.some(hash => location?.hash?.includes(hash))) { return; } loadAppstleLoyaltyWidget(); enableWidget(); setTimeout(() => { document.querySelector('#appstle_loyalty_iframe')?.classList?.add('show-close-icon'); }, 900); } handleDeepLink(); const widgetReferralUrl = new URL(window.location.href); if (_ALConfig?.referralEnabled && widgetReferralUrl?.searchParams.get('appstle_referral') && _ALConfig?.widget_setting?.widgetType === 'LAUNCHER') { let referralRedirectUrl = _ALConfig?.widget_setting?.referralRedirectUrl; let redirectURL = referralRedirectUrl + window.location.search; if (referralRedirectUrl) { let referralUrlObj; try { referralUrlObj = new URL(referralRedirectUrl, window.location.origin); } catch { referralUrlObj = null; } let referralPath = referralUrlObj ? referralUrlObj.pathname.replace(/\/+$/, '') : referralRedirectUrl.replace(/\/+$/, ''); let currentPath = window.location.pathname.replace(/\/+$/, ''); if (referralPath && currentPath !== referralPath) { window.open(redirectURL, '_self'); } } setTimeout(() => { loadAppstleLoyaltyWidget(); enableWidget(); }, 200); } (function observeURLChanges() { let lastUrl = location.href; const handleUrlChange = () => { if (location.href !== lastUrl) { handleDeepLink(); lastUrl = location.href; } }; new MutationObserver(handleUrlChange).observe(document.body, { subtree: true, childList: true }); window.addEventListener('popstate', handleUrlChange); window.addEventListener('hashchange', handleUrlChange); })(); const alDOMObserver = new MutationObserver(function(mutations_list) { mutations_list.forEach(function(mutation) { mutation.addedNodes.forEach(function(added_node) { if (added_node.id === 'appstle_loyalty_iframe') { var iframe = document.querySelectorAll('#appstle_loyalty_iframe'); iframe.forEach(function(item) { item.contentWindow._ALConfig = _ALConfig; item.contentWindow.document.open('text/html', 'replace'); item.contentWindow.document.write(alIframeSrc); item.contentWindow.document.close(); }); alDOMObserver.disconnect(); } }); }); }); alDOMObserver.observe(document.querySelector('body'), { subtree: true, childList: true }); (function hideWidgetOnScroll() { setTimeout(() => { const button = document.getElementById('appstle-loyalty-button'); const iframe = document.getElementById('appstle_loyalty_iframe'); if (!button || !iframe) return; if (button && !button?.classList?.contains('appstle-loyalty-hidden')) { let lastY = window.scrollY; const offset = 200; window.addEventListener('scroll', () => { const currentY = window.scrollY; if (Math.abs(currentY - lastY) < offset) return; const hide = currentY > lastY; button.classList.toggle('appstle-loyalty-hidden', hide); iframe.classList.toggle('appstle-loyalty-hidden', hide); lastY = currentY; }); } }, 2000); })(); } try { const versionUrl = `${location.origin}/${_ALConfig?.proxy_path_prefix || 'apps/loyalty'}/app-loyalty-version`; fetch(versionUrl) .then(res => res.json()) .then(data => { if (data) { const widgetJsUrl = new URL(_ALConfig.widgetJsPath); const widgetCssUrl = new URL(_ALConfig.widgetCssPath); widgetJsUrl.searchParams.set('v', data); widgetCssUrl.searchParams.set('v', data); _ALConfig.widgetJsPath = widgetJsUrl.toString(); _ALConfig.widgetCssPath = widgetCssUrl.toString(); } }) .catch(() => { }) .finally(() => { executeLoyaltyWidget(); }); } catch (err) { executeLoyaltyWidget(); } const storeCreditMismatch = _ALConfig?.customerId && _ALConfig?.customerStoreCreditBalance >= 0 && _ALConfig?.customerLoyalty?.storeCreditBalance >= 0 && _ALConfig?.customerLoyalty?.storeCreditBalance !== _ALConfig?.customerStoreCreditBalance; if (storeCreditMismatch && _ALConfig.shop === 'olineloyalty27.myshopify.com') { const updateCustomerUrl = `/${_ALConfig?.proxy_path_prefix || 'apps/loyalty'}/cp/api/update-customer`; try { fetch(updateCustomerUrl, { method: 'POST' }) .then((response) => { if(response.ok) {} }) .catch(() => {}); } catch (err) {} } const dedicatedPageURL = new URL(window.location.href); const decodeUrl = (content) => { if (typeof content !== 'string') return content; try { const htmlDecoded = content?.replace(/\\\//g, '/'); return JSON.parse(`"${htmlDecoded}"`); } catch (error) { console.error('Error parsing content:', error); return content; } }; if (dedicatedPageURL?.searchParams?.get('appstle_referral') && _ALConfig?.widget_setting?.widgetType === 'DEDICATED_PAGE') { const customUrl = decodeUrl(_ALConfig?.widget_setting?.referralCustomRedirectUrl); if (customUrl) { const normalizedCustomPath = customUrl.startsWith('/') ? customUrl : `/${customUrl}`; if (window.location.pathname !== normalizedCustomPath) { const redirectUrl = new URL(window.location.href); redirectUrl.pathname = normalizedCustomPath; window.open(redirectUrl.toString(), '_self'); } } else if (dedicatedPageURL?.searchParams?.get('appstle_referral') && _ALConfig?.widget_setting?.widgetType === 'DEDICATED_PAGE' && !window.location.href.includes(_ALConfig?.proxy_path_prefix)) { window.open(`/${_ALConfig?.proxy_path_prefix}${window.location.search}`, '_self'); } } const dedicatedPageEventListener = (event) => { if (event?.data && typeof event?.data.indexOf === 'function' && event?.data?.indexOf('refresh_appstle_loyalty_page') !== -1) { initiateAppstleLoyaltyPage(); console.log('REFRESH PAGE'); } }; window.addEventListener('message', dedicatedPageEventListener, false); function initiateAppstleLoyaltyPage() { if (document.querySelector('#appstleLoyaltyPage')) { const appstleLoyaltyPageElement = document.getElementById('appstleLoyaltyPage'); while (appstleLoyaltyPageElement.firstChild) { appstleLoyaltyPageElement.firstChild.remove(); } document.title = ""; setTimeout(() => { let metaDescription = document.querySelector('meta[name="description"]'); if (metaDescription) { metaDescription.content = ""; } else { metaDescription = document.createElement('meta'); metaDescription.name = 'description'; metaDescription.content = ""; document.head.appendChild(metaDescription); } }, 500); if (appstleLoyaltyPageElement) { const executeDedicatedPageScript = () => { const s = document.createElement('script'); s.setAttribute('src', _ALConfig?.widgetJsPath); s.setAttribute('defer', 'defer'); document.body.appendChild(s); const head = document.head; const link = document.createElement('link'); link.type = 'text/css'; link.rel = 'stylesheet'; link.href = _ALConfig?.widgetCssPath; head.appendChild(link); } try { const versionUrl = `${location.origin}/${_ALConfig?.proxy_path_prefix || 'apps/loyalty'}/app-loyalty-version`; fetch(versionUrl).then(res => res.json()).then(data => { if (data) { const widgetJsUrl = new URL(_ALConfig.widgetJsPath); const widgetCssUrl = new URL(_ALConfig.widgetCssPath); widgetJsUrl.searchParams.set('v', data); widgetCssUrl.searchParams.set('v', data); _ALConfig.widgetJsPath = widgetJsUrl.toString(); _ALConfig.widgetCssPath = widgetCssUrl.toString(); } }).catch(() => {}).finally(() => { executeDedicatedPageScript(); }); } catch (err) { executeDedicatedPageScript(); } } } else { setTimeout(() => { initiateAppstleLoyaltyPage(); }, 2000); } } const dedicatedPageReferralUrl = new URL(window.location.href)?.searchParams.get('appstle_referral'); if (_ALConfig?.widget_setting?.showWidget === true) { initiateAppstleLoyaltyPage(); } (async function() { const isAvailableVisitShop = _ALConfig?.pointEarnRules?.length > 0 && _ALConfig?.pointEarnRules?.find((rule) => rule?.type === 'VISIT_SHOP' && rule?.status === 'ACTIVE'); if (_ALConfig?.customerId && isAvailableVisitShop) { if (!sessionStorage.getItem('syncVisitStore') && ((_ALConfig?.customerId && isAvailableVisitShop && isAvailableVisitShop?.id) || (_ALConfig?.referralEnabled && _ALConfig?.referralLoyalty?.referralType === 'VISIT_SHOP'))) { try { const response = await fetch(`/${_ALConfig?.proxy_path_prefix || 'apps/loyalty'}/cp/api/customer-visit-store`, { method: 'POST', headers: {'Content-Type': 'application/json'}, }); if (response?.ok) { sessionStorage.setItem('syncVisitStore', 'true'); } } catch (error) { console.error('Error:', error); } } } })(); const loyaltyCustomStyles = ``; document.querySelector('body').insertAdjacentHTML('beforeend', loyaltyCustomStyles);