cookies.md 6.1 KB

CapacitorCookies

The Capacitor Cookies API provides native cookie support via patching document.cookie to use native libraries. It also provides methods for modifying cookies at a specific url. This plugin is bundled with @capacitor/core.

Configuration

By default, the patching of document.cookie to use native libraries is disabled. If you would like to enable this feature, modify the configuration below in the capacitor.config file.

Prop Type Description Default
enabled boolean Enable the patching of document.cookie to use native libraries instead. false

Example Configuration

In capacitor.config.json:

{
  "plugins": {
    "CapacitorCookies": {
      "enabled": true
    }
  }
}

In capacitor.config.ts:

import { CapacitorConfig } from '@capacitor/cli';

const config: CapacitorConfig = {
  plugins: {
    CapacitorCookies: {
      enabled: true,
    },
  },
};

export default config;

Example

import { CapacitorCookies } from '@capacitor/core';

const getCookies = () => {
  return document.cookie;
};

const setCookie = () => {
  document.cookie = key + '=' + value;
};

const setCapacitorCookie = async () => {
  await CapacitorCookies.setCookie({
    url: 'http://example.com',
    key: 'language',
    value: 'en',
  });
};

const deleteCookie = async () => {
  await CapacitorCookies.deleteCookie({
    url: 'https://example.com',
    key: 'language',
  });
};

const clearCookiesOnUrl = async () => {
  await CapacitorCookies.clearCookies({
    url: 'https://example.com',
  });
};

const clearAllCookies = async () => {
  await CapacitorCookies.clearAllCookies();
};

Third Party Cookies on iOS

As of iOS 14, you cannot use 3rd party cookies by default. Add the following lines to your Info.plist file to get better support for cookies on iOS. You can add up to 10 domains.

<key>WKAppBoundDomains</key>
<array>
  <string>www.mydomain.com</string>
  <string>api.mydomain.com</string>
  <string>www.myothercooldomain.com</string>
</array>

API

getCookies(...)

getCookies(options?: GetCookieOptions) => Promise<HttpCookieMap>
Param Type
options GetCookieOptions

Returns: Promise<HttpCookieMap>


setCookie(...)

setCookie(options: SetCookieOptions) => Promise<void>

Write a cookie to the device.

Param Type
options SetCookieOptions

deleteCookie(...)

deleteCookie(options: DeleteCookieOptions) => Promise<void>

Delete a cookie from the device.

Param Type
options DeleteCookieOptions

clearCookies(...)

clearCookies(options: ClearCookieOptions) => Promise<void>

Clear cookies from the device at a given URL.

Param Type
options ClearCookieOptions

clearAllCookies()

clearAllCookies() => Promise<void>

Clear all cookies on the device.


Interfaces

HttpCookieMap

HttpCookie

Prop Type Description
url string The URL of the cookie.
key string The key of the cookie.
value string The value of the cookie.

HttpCookieExtras

Prop Type Description
path string The path to write the cookie to.
expires string The date to expire the cookie.

Type Aliases

GetCookieOptions

Omit<HttpCookie, 'key' | 'value'>

Omit

Construct a type with the properties of T except for those in type K.

Pick<T, Exclude<keyof T, K>>

Pick

From T, pick a set of properties whose keys are in the union K

{

}

Exclude

Exclude from T those types that are assignable to U

T extends U ? never : T

SetCookieOptions

HttpCookie & HttpCookieExtras

DeleteCookieOptions

Omit<HttpCookie, 'value'>

ClearCookieOptions

Omit<HttpCookie, 'key' | 'value'>