(function () { 'use strict'; /* ========================================================= SETTINGS ========================================================= */ const CLOSE_DELAY = 350; const hoverDevice = window.matchMedia( '(hover: hover) and (pointer: fine)' ); /* ========================================================= GLOBAL STATE ========================================================= */ let portal = null; let activeTrigger = null; let activeSelect = null; let activeParent = null; let closeTimer = null; let isHoveringTrigger = false; let isHoveringPortal = false; /* ========================================================= SAFE EVENT TARGET ========================================================= */ function getEventElement(event) { if (event.target instanceof Element) { return event.target; } if ( event.target && event.target.parentElement instanceof Element ) { return event.target.parentElement; } return null; } /* ========================================================= COOKIE HELPER ========================================================= */ function getCookie(name) { const cookies = document.cookie.split(';'); for (let i = 0; i < cookies.length; i++) { const cookie = cookies[i].trim(); if (cookie.indexOf(name + '=') === 0) { return decodeURIComponent( cookie.substring(name.length + 1) ); } } return null; } /* ========================================================= CREATE ONE GLOBAL PORTAL ========================================================= */ function createPortal() { /* * Remove old portal copies from previous code. */ document .querySelectorAll('.wmc-portal-dropdown') .forEach(function (oldPortal) { oldPortal.remove(); }); portal = document.createElement('div'); portal.className = 'wmc-portal-dropdown'; portal.setAttribute( 'role', 'listbox' ); portal.setAttribute('hidden', ''); portal.setAttribute('inert', ''); portal.style.setProperty( 'display', 'none', 'important' ); portal.style.setProperty( 'visibility', 'hidden', 'important' ); portal.style.setProperty( 'opacity', '0', 'important' ); portal.style.setProperty( 'pointer-events', 'none', 'important' ); portal.style.setProperty( 'z-index', '2147483647', 'important' ); document.body.appendChild(portal); /* * Keep dropdown open on desktop while * cursor is inside the portal. */ portal.addEventListener( 'mouseenter', function () { if (!hoverDevice.matches) { return; } isHoveringPortal = true; cancelHide(); } ); portal.addEventListener( 'mouseleave', function () { if (!hoverDevice.matches) { return; } isHoveringPortal = false; scheduleHide(); } ); } /* ========================================================= PREPARE ONE CURRENCY SELECT ========================================================= */ function prepareCurrencySelect(select) { if (!(select instanceof HTMLSelectElement)) { return; } const container = select.closest('.wmc-currency'); if (!container) { return; } container.classList.add('transformed'); /* * Find existing trigger. * * If Elementor cloned the markup, this trigger * may have no old event listeners. That's fine, * because this new version uses delegated events. */ let trigger = container.querySelector( '.wmc-custom-switcher' ); /* * Create trigger if it does not exist. */ if (!trigger) { trigger = document.createElement('div'); trigger.className = 'wmc-custom-switcher'; trigger.setAttribute( 'role', 'button' ); trigger.setAttribute( 'tabindex', '0' ); trigger.setAttribute( 'aria-haspopup', 'listbox' ); trigger.setAttribute( 'aria-expanded', 'false' ); trigger.innerHTML = `
`; container.appendChild(trigger); } /* * Determine current currency. */ let currentValue = select.value; const savedCurrency = getCookie('wmc_current_currency'); if (savedCurrency) { const validSavedCurrency = Array.from(select.options).some( function (option) { return ( option.value === savedCurrency ); } ); if (validSavedCurrency) { currentValue = savedCurrency; } } const currentOption = Array.from(select.options).find( function (option) { return ( option.value === currentValue ); } ); const label = trigger.querySelector( '.wmc-current-label' ); if (label && currentOption) { label.textContent = currentOption .textContent .trim(); } /* * Debug marker only. * * IMPORTANT: * We do NOT use this anymore to decide * whether mobile clones should initialize. */ select.dataset.wmcPortalInitialized = '1'; } /* ========================================================= PREPARE ALL CURRENCY SELECTS ========================================================= */ function prepareAllCurrencySelects() { document .querySelectorAll( '.wmc-select-currency-js' ) .forEach( prepareCurrencySelect ); } /* ========================================================= GET SELECT FROM TRIGGER ========================================================= */ function getSelectFromTrigger(trigger) { if (!trigger) { return null; } const container = trigger.closest('.wmc-currency'); if (!container) { return null; } return container.querySelector( '.wmc-select-currency-js' ); } /* ========================================================= BUILD PORTAL OPTIONS ========================================================= */ function buildPortal(select) { if (!portal || !select) { return; } portal.innerHTML = ''; let currentValue = select.value; const savedCurrency = getCookie('wmc_current_currency'); if ( savedCurrency && Array.from(select.options).some( function (option) { return ( option.value === savedCurrency ); } ) ) { currentValue = savedCurrency; } Array.from(select.options).forEach( function (option) { const item = document.createElement('a'); item.href = '#'; item.className = 'wmc-currency-option'; item.dataset.currency = option.value; item.setAttribute( 'role', 'option' ); if ( option.value === currentValue ) { item.classList.add( 'is-current' ); item.setAttribute( 'aria-selected', 'true' ); } else { item.setAttribute( 'aria-selected', 'false' ); } const name = document.createElement('span'); name.className = 'wmc-currency-name'; name.textContent = option.textContent.trim(); item.appendChild(name); portal.appendChild(item); } ); } /* ========================================================= POSITION PORTAL ========================================================= */ function updatePosition() { if ( !portal || !activeTrigger || !document.body.contains(activeTrigger) ) { return; } const rect = activeTrigger.getBoundingClientRect(); if ( rect.width <= 0 || rect.height window.innerWidth - 5 ) { left = Math.max( 5, window.innerWidth - width - 5 ); } portal.style.setProperty( 'position', 'fixed', 'important' ); portal.style.setProperty( 'top', (rect.bottom - 1) + 'px', 'important' ); portal.style.setProperty( 'left', left + 'px', 'important' ); portal.style.setProperty( 'width', width + 'px', 'important' ); portal.style.setProperty( 'min-width', width + 'px', 'important' ); portal.style.setProperty( 'max-width', width + 'px', 'important' ); portal.style.setProperty( 'z-index', '2147483647', 'important' ); } /* ========================================================= TIMER HELPERS ========================================================= */ function cancelHide() { if (closeTimer !== null) { clearTimeout(closeTimer); closeTimer = null; } } function scheduleHide() { cancelHide(); closeTimer = setTimeout( function () { if ( !isHoveringTrigger && !isHoveringPortal ) { closePortal(); } }, CLOSE_DELAY ); } /* ========================================================= OPEN PORTAL ========================================================= */ function openPortal(trigger) { if (!trigger || !portal) { return; } const select = getSelectFromTrigger(trigger); if (!select) { return; } /* * Close visual state of previous trigger. */ if ( activeTrigger && activeTrigger !== trigger ) { activeTrigger.classList.remove( 'is-open' ); activeTrigger.setAttribute( 'aria-expanded', 'false' ); const previousParent = activeTrigger.closest( '.currency-parent-trigger' ); if (previousParent) { previousParent.classList.remove( 'currency-dropdown-open' ); } } activeTrigger = trigger; activeSelect = select; activeParent = trigger.closest( '.currency-parent-trigger' ); cancelHide(); buildPortal(select); updatePosition(); portal.classList.add( 'active' ); trigger.classList.add( 'is-open' ); if (activeParent) { activeParent.classList.add( 'currency-dropdown-open' ); } trigger.setAttribute( 'aria-expanded', 'true' ); /* * Remove accessibility hiding. */ portal.removeAttribute( 'hidden' ); portal.removeAttribute( 'inert' ); /* * FORCE VISIBLE. * * This intentionally overrides conflicting * Elementor/mobile CSS. */ portal.style.setProperty( 'display', 'block', 'important' ); portal.style.setProperty( 'visibility', 'visible', 'important' ); portal.style.setProperty( 'opacity', '1', 'important' ); portal.style.setProperty( 'pointer-events', 'auto', 'important' ); portal.style.setProperty( 'z-index', '2147483647', 'important' ); } /* ========================================================= CLOSE PORTAL ========================================================= */ function closePortal() { cancelHide(); if (portal) { portal.classList.remove( 'active' ); portal.style.setProperty( 'display', 'none', 'important' ); portal.style.setProperty( 'visibility', 'hidden', 'important' ); portal.style.setProperty( 'opacity', '0', 'important' ); portal.style.setProperty( 'pointer-events', 'none', 'important' ); portal.setAttribute( 'hidden', '' ); portal.setAttribute( 'inert', '' ); } if (activeTrigger) { activeTrigger.classList.remove( 'is-open' ); activeTrigger.setAttribute( 'aria-expanded', 'false' ); } if (activeParent) { activeParent.classList.remove( 'currency-dropdown-open' ); } activeTrigger = null; activeSelect = null; activeParent = null; isHoveringTrigger = false; isHoveringPortal = false; } /* ========================================================= SELECT CURRENCY ========================================================= */ function selectCurrency(item) { if ( !item || !activeSelect ) { return; } const value = item.dataset.currency; if (!value) { return; } /* * Preserve references BEFORE closing. */ const select = activeSelect; const trigger = activeTrigger; const selectedOption = Array.from(select.options).find( function (option) { return ( option.value === value ); } ); if (!selectedOption) { return; } /* * Update original select. */ select.value = value; /* * Update visible label. */ if (trigger) { const label = trigger.querySelector( '.wmc-current-label' ); if (label) { label.textContent = selectedOption .textContent .trim(); } } /* * Save selected currency. */ document.cookie = 'wmc_current_currency=' + encodeURIComponent(value) + '; path=/; SameSite=Lax'; /* * Close first. */ closePortal(); /* * Trigger WooCommerce Multi Currency plugin. */ select.dispatchEvent( new Event( 'change', { bubbles: true } ) ); /* * jQuery compatibility. */ if (window.jQuery) { window.jQuery(select).trigger( 'change' ); } } /* ========================================================= DELEGATED CLICK DESKTOP + MOBILE + ELEMENTOR CLONES ========================================================= */ document.addEventListener( 'click', function (event) { const target = getEventElement(event); if (!target) { return; } /* * ----------------------------------------- * CURRENCY OPTION CLICK * ----------------------------------------- */ const currencyOption = target.closest( '.wmc-currency-option' ); if ( currencyOption && portal && portal.contains( currencyOption ) ) { event.preventDefault(); event.stopPropagation(); selectCurrency( currencyOption ); return; } /* * ----------------------------------------- * CURRENCY TRIGGER CLICK * ----------------------------------------- */ let trigger = target.closest( '.wmc-custom-switcher' ); /* * Also allow clicking/tapping the Elementor * currency parent/icon area. */ if (!trigger) { const parent = target.closest( '.currency-parent-trigger' ); if (parent) { trigger = parent.querySelector( '.wmc-custom-switcher' ); } } if (trigger) { event.preventDefault(); event.stopPropagation(); /* * Desktop: * hover normally handles opening, * but clicking keeps it open. */ if (hoverDevice.matches) { openPortal(trigger); return; } /* * Mobile / touch: * tap toggles dropdown. */ if ( activeTrigger === trigger && portal && portal.classList.contains( 'active' ) ) { closePortal(); } else { openPortal(trigger); } return; } /* * ----------------------------------------- * OUTSIDE CLICK * ----------------------------------------- */ if ( portal && !portal.contains(target) ) { closePortal(); } }, true ); /* ========================================================= DESKTOP DELEGATED HOVER ========================================================= */ document.addEventListener( 'mouseover', function (event) { if (!hoverDevice.matches) { return; } const target = getEventElement(event); if (!target) { return; } let hoverArea = target.closest( '.currency-parent-trigger' ); let trigger = null; if (hoverArea) { trigger = hoverArea.querySelector( '.wmc-custom-switcher' ); } else { trigger = target.closest( '.wmc-custom-switcher' ); hoverArea = trigger; } if (!trigger || !hoverArea) { return; } /* * Ignore movement between children * inside the same trigger. */ if ( event.relatedTarget instanceof Node && hoverArea.contains( event.relatedTarget ) ) { return; } isHoveringTrigger = true; cancelHide(); openPortal(trigger); }, true ); document.addEventListener( 'mouseout', function (event) { if (!hoverDevice.matches) { return; } const target = getEventElement(event); if (!target) { return; } let hoverArea = target.closest( '.currency-parent-trigger' ); let trigger = null; if (hoverArea) { trigger = hoverArea.querySelector( '.wmc-custom-switcher' ); } else { trigger = target.closest( '.wmc-custom-switcher' ); hoverArea = trigger; } if (!trigger || !hoverArea) { return; } /* * Ignore movement between children * inside same area. */ if ( event.relatedTarget instanceof Node && hoverArea.contains( event.relatedTarget ) ) { return; } isHoveringTrigger = false; scheduleHide(); }, true ); /* ========================================================= KEYBOARD SUPPORT ========================================================= */ document.addEventListener( 'keydown', function (event) { /* * Escape always closes. */ if (event.key === 'Escape') { closePortal(); return; } if ( event.key !== 'Enter' && event.key !== ' ' ) { return; } const target = getEventElement(event); if (!target) { return; } const trigger = target.closest( '.wmc-custom-switcher' ); if (!trigger) { return; } event.preventDefault(); if ( activeTrigger === trigger && portal && portal.classList.contains( 'active' ) ) { closePortal(); } else { openPortal(trigger); } } ); /* ========================================================= UPDATE POSITION ON SCROLL ========================================================= */ window.addEventListener( 'scroll', function () { if ( portal && portal.classList.contains( 'active' ) ) { updatePosition(); } }, { passive: true, capture: true } ); /* ========================================================= UPDATE POSITION ON RESIZE ========================================================= */ window.addEventListener( 'resize', function () { if ( portal && portal.classList.contains( 'active' ) ) { updatePosition(); } } ); /* ========================================================= ELEMENTOR / AJAX / OFF-CANVAS SUPPORT ========================================================= */ let mutationTimer = null; const observer = new MutationObserver( function (mutations) { let needsCheck = false; for ( let i = 0; i < mutations.length; i++ ) { if ( mutations[i].addedNodes && mutations[i].addedNodes.length ) { needsCheck = true; break; } } if (!needsCheck) { return; } if (mutationTimer) { clearTimeout( mutationTimer ); } mutationTimer = setTimeout( function () { prepareAllCurrencySelects(); }, 100 ); } ); /* ========================================================= START ========================================================= */ function start() { createPortal(); prepareAllCurrencySelects(); observer.observe( document.documentElement, { childList: true, subtree: true } ); } if ( document.readyState === 'loading' ) { document.addEventListener( 'DOMContentLoaded', start ); } else { start(); } })();

KONTO

[fk_cart_menu]

WARENKORB

document.addEventListener('DOMContentLoaded', function () { const container = document.querySelector( '.language-parent-trigger' ); if (!container) { return; } const list = container.querySelector( '.trp-switcher-dropdown-list' ); const overlay = container.querySelector( '.trp-shortcode-overlay' ); const arrow = container.querySelector( '.trp-shortcode-arrow' ); function show() { if (list) { list.style.display = 'block'; list.style.visibility = 'visible'; list.style.opacity = '1'; list.style.pointerEvents = 'auto'; list.removeAttribute('hidden'); list.removeAttribute('inert'); } if (overlay) { overlay.classList.add( 'trp-is-open', 'is-open' ); } if (arrow) { arrow.style.transform = 'rotate(180deg)'; } } function hide() { if (list) { list.style.display = 'none'; list.setAttribute('hidden', ''); list.setAttribute('inert', ''); } if (overlay) { overlay.classList.remove( 'trp-is-open', 'is-open' ); } if (arrow) { arrow.style.transform = 'rotate(0deg)'; } } container.addEventListener('mouseenter', show); container.addEventListener('mouseleave', hide); });
(function () { function init() { const cartDrawer = document.querySelector('.open-cart-drawer'); const cartToggleBtn = document.querySelector('#elementor-menu-cart__toggle_button'); if (!cartDrawer || !cartToggleBtn) { setTimeout(init, 300); return; } cartDrawer.addEventListener('click', function (e) { e.preventDefault(); e.stopPropagation(); const clickEvent = new MouseEvent('click', { bubbles: true, cancelable: true, view: window }); cartToggleBtn.dispatchEvent(clickEvent); }); } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', init); } else { init(); } })();
[fk_cart_menu]
document.addEventListener('DOMContentLoaded', function(){ document.querySelectorAll('.custom-cart-hover').forEach(function(container){ container.addEventListener('click', function(){ const toggler = container.querySelector('.fkcart-mini-toggler'); if(toggler){ toggler.click(); // plugin ka original toggle fire kare } }); }); });
Bitdefender Mobile Security

Bitdefender Mobile Security

CHF 11.35
[ndpe_delivery_time]
Artikel-Nr.:Select Options
Hersteller-Nr:Select Options
Laufzeit:Select Options
Sprache(n):Select Options
Länderzone(n):Select Options

Bitdefender Mobile Security ist für Android. Es schützt dein Handy vor Malware. Es kann beim Surfen gefährliche Seiten blockieren. Es kann Spam- und Scam-Anrufe erkennen. Du kannst Apps zusätzlich sperren. Ein VPN ist dabei, aber nur mit 200 MB pro Tag. Du brauchst Android 6 oder neuer und Internet für Installation und Aktivierung.

SwissSoftware24 ist Ihr zuverlässiger Partner für Bitdefender Produkte, sowohl für Privatpersonen als auch für Geschäftskunden. Sie erhalten Ihr digitales Produkt innerhalb weniger Minuten, inklusive Aktivierungsschlüssel, offiziellem Download Link und einer Schweizer Rechnung, die die MWST Anforderungen erfüllt. Zusätzlich profitieren Sie von 2 Jahren Garantie, direktem Premium Support und echter Schweizer Kulanz, falls etwas nicht wie erwartet funktioniert. Für individuelle Anforderungen bieten wir personalisierte Lösungen, die perfekt auf Ihre Bedürfnisse zugeschnitten sind.

Auf dem Smartphone passieren die meisten Dinge nebenbei – Banking, Login-Codes, Messenger, Links, Anhänge. Genau deshalb fühlt sich Sicherheit hier oft nicht wie “ein Extra” an, sondern wie die Grundlage dafür, dass du ganz normal weitermachen kannst. Bitdefender Mobile Security für Android ist für diesen Alltag gemacht: Schutz, der im Hintergrund läuft und dich nicht ausbremst, aber eingreift, wenn etwas riskant wird.

Der praktische Mehrwert liegt in den Schichten: Neben Malware-Scan kommen Funktionen wie Web Protection, Scam- und Spam-Call Blocking, App Lock, Account Privacy (Hinweise bei Datenleaks) und ein VPN-Kontingent für unterwegs dazu. So musst du nicht bei jedem Link oder jedem fremden WLAN überlegen, ob du gerade ein Risiko eingehst.

Eine klassische “2021 Edition” wie bei Office gibt es hier nicht – Bitdefender Mobile Security wird als Abo laufend aktualisiert. Wichtig als Orientierung: Für Android gilt aktuell Android 6 oder neuer als Mindestvoraussetzung.

Wenn du Bitdefender Mobile Security bei SwissSoftware24 kaufst, erhältst du dein digitales Produkt schnell per E-Mail, inklusive Aktivierungsschlüssel und offiziellem Download Link sowie einer Schweizer Rechnung, die für die Buchhaltung passt. Zusätzlich profitierst du von klaren Abläufen für Privatpersonen und Unternehmen, damit Aktivierung und Einrichtung reibungslos funktionieren.

Bitdefender Mobile Security für Android – Schutz vor Malware, Web- und Scam-Risiken, inkl. VPN (200 MB/Tag)

Bitdefender Mobile Security ist eine Sicherheits-App für Android Smartphones und Tablets. Sie kombiniert Malware-Schutz mit Funktionen für sicheres Surfen, Scam-Erkennung und Privatsphäre-Tools. In deinem Shop wird dieses Produkt nur für Android angeboten.

Welche Funktionen sind enthalten?

Zentrale Schutzfunktionen

  • Malware Scanner (Scan von Apps und Dateien)
  • Web Protection zum Blockieren schädlicher oder betrügerischer Seiten
  • Scam Protection & Chat Protection (Schutz vor typischen Betrugsmaschen, je nach Android-Version)
  • App Anomaly Detection (Verhaltensanalyse von Apps in Echtzeit)
  • Spam & Scam Call Blocking (Sperren/Markieren auffälliger Anrufe)

Privacy- und Alltagstools

  • Bitdefender VPN mit bis zu 200 MB pro Tag verschlüsseltem Traffic
  • App Lock (Apps per PIN/Biometrie schützen)
  • Account Privacy / Identity Protection (Hinweise bei Account- und Passwort-Leaks)
  • Anti-Theft (Ortung/Remote-Sperre, falls das Gerät verloren geht)
  • Autopilot (Sicherheits-Empfehlungen basierend auf Nutzung)

Für wen ist Bitdefender Mobile Security (Android) typisch?

  • Android-Nutzer, die mehr als “nur Scan” wollen – also auch Web- und Scam-Schutz
  • Menschen, die oft unterwegs sind und ein VPN-Kontingent für öffentliches WLAN praktisch finden
  • Alle, die sensible Apps zusätzlich sperren möchten (Banking, Messenger, Mail)

Wichtige Hinweise zur Verfügbarkeit (Android-only im Shop)

  • Dieses Produkt ist in deinem Shop nur für Android vorgesehen.
  • Für Scam Protection und App Anomaly Detection wird Android 6 oder neuer benötigt.
  • Das VPN ist in dieser Variante limitiert (200 MB/Tag).

Installation, Aktivierung und Konto

  • Für Installation und Aktivierung ist eine Internetverbindung nötig.
  • Die Verwaltung läuft typischerweise über ein Bitdefender Central Konto (Aktivierung, Geräteverwaltung).

Systemanforderungen

  • Betriebssystem: Android 6 oder neuer
  • Internetverbindung: aktive Internetverbindung erforderlich

FAQ

Für wen ist Bitdefender Mobile Security (Android)?

Für Android-Nutzer, die ihr Smartphone oder Tablet gegen Malware und typische Online-Risiken absichern möchten. Es passt besonders gut, wenn du Web- und Scam-Schutz zusätzlich zum Virenscan willst. Die Version in deinem Shop ist Android-only.

Was unterscheidet Bitdefender Mobile Security von anderen Android-Sicherheits-Apps?

Bitdefender kombiniert mehrere Ebenen: Malware-Scan, Web Protection, Scam- und Call-Blocking sowie Privacy-Tools wie App Lock und Account-Privacy-Hinweise. Dadurch deckst du mehr Alltagssituationen ab als mit einem reinen “Scanner”.

Was sind die wichtigsten Vorteile von Bitdefender Mobile Security (Android)?

Du bekommst Schutz beim Installieren und Nutzen von Apps, beim Surfen und bei typischen Scam-Szenarien. Zusätzlich sind App Lock und ein VPN-Kontingent enthalten, was unterwegs praktisch ist. Voraussetzung ist Android 6 oder neuer.

Ist ein VPN enthalten und gibt es Einschränkungen?

Ja, ein VPN ist enthalten, aber mit einem Limit von bis zu 200 MB pro Tag. Für “Basis-Privatsphäre” unterwegs reicht das oft, für dauerhaftes VPN eher nicht.

Welche Systemanforderungen gelten?

Bitdefender nennt als Mindestvoraussetzung Android 6 oder neuer sowie eine aktive Internetverbindung für Installation und Nutzung von Online-Funktionen.

Je nachdem, was du absichern willst, sind diese Optionen entweder die passendere Alternative oder eine praktische Ergänzung

Alternativen (wenn du mehr als Android abdecken willst)

Bitdefender Total Security wenn du nicht nur dein Android-Gerät schützen willst, sondern auch Windows oder macOS im selben Paket, ist Total Security die naheliegende Alternative. Es passt besonders gut, wenn du zu Hause mehrere Geräte nutzt und alles zentral verwalten möchtest.

Ergänzungen (wenn du Mobile Security erweitern willst)

Bitdefender Premium VPN Mobile Security enthält ein VPN-Kontingent, das für kurze “WLAN unterwegs”-Momente reicht. Wenn du VPN häufiger nutzt oder kein tägliches Limit möchtest, ist Premium VPN die sinnvolle Ergänzung.

Bitdefender Password Manager wenn du deine Logins zentral organisieren willst (starke Passwörter, weniger Wiederverwendung, schnelleres Einloggen), ist der Password Manager eine gute Ergänzung – besonders, wenn mehrere Accounts und Apps im Alltag zusammenkommen.

Weitere Informationen zu diesem Produkt finden Sie hier.

Weitere Informationen

[ffw_template dynamic_post=true]

Kundenbewertungen

FAQs

[ffw_template dynamic_post=true]
Wählen Sie Ihre Währung