Skip to content

Detect if a visitor is coming through a webview or a native browser using user-agent.

Notifications You must be signed in to change notification settings

dvlden/is-webview

Repository files navigation

Is Webview

GitHub package.json version npm bundle size (scoped)

Is Webview

A utility module that takes user-agent string and determines whether it uses webview or native browser. It has been tested for Android and Apple devices with a few samples collected by running ads.

For my very specific use-case, it successfully detects viewing from Facebook, Instagram, Tiktok and Snapchat.

It does not rely on window.navigator.standalone for iOS, to allow Node.js to also use this module.


Installation

Use your favourite package manager... In my case that's pnpm.

pnpm i @dvlden/is-webview

Usage

Browser

import { isWebview } from '@dvlden/is-webview'

if (isWebview(window.navigator.userAgent)) {
  // do something
}

Node

const { isWebview } = require('@dvlden/is-webview')

if (isWebview(/* pass user-agent from the request */)) {
  // do something
}

Why?

Did you know that all of the apps that offer a webview experience (in-app browser), are tracking their users through it. This is especially true for social media apps. That's the main reason why I made this module; to help some websites escape tracking by telling visitors to tap on the ... from Webview and open the website in the browser, while keeping query parameters that social media appends for pixel tracking.