跳到主要内容
版本:v7

CapacitorCookies

Capacitor Cookies API 通过修补 document.cookie 以使用原生库,提供原生 Cookie 支持。它还提供了在特定 URL 下修改 Cookie 的方法。此插件已捆绑在 @capacitor/core 中。

配置

默认情况下,修补 document.cookie 以使用原生库的功能是禁用的。 如果您希望启用此功能,请在 capacitor.config 文件中修改以下配置。

属性类型描述默认值
enabledboolean启用修补 document.cookie 以使用原生库。false

配置示例

capacitor.config.json 中:

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

capacitor.config.ts 中:

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

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

export default config;

示例

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();
};

从 iOS 14 开始,默认情况下无法使用第三方 Cookie。请将以下行添加到您的 Info.plist 文件中,以获得更好的 iOS Cookie 支持。最多可以添加 10 个域名。

<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>
参数类型
options
GetCookieOptions

返回值:

Promise<HttpCookieMap>


setCookie(...)

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

将 Cookie 写入设备。

参数类型
options
SetCookieOptions

deleteCookie(...)

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

从设备中删除 Cookie。

参数类型
options
DeleteCookieOptions

clearCookies(...)

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

清除设备上指定 URL 的 Cookie。

参数类型
options
ClearCookieOptions

clearAllCookies()

clearAllCookies() => Promise<void>

清除设备上的所有 Cookie。


Interfaces

HttpCookieMap

HttpCookie

属性类型描述
urlstringCookie 的 URL。
keystringCookie 的键。
valuestringCookie 的值。

HttpCookieExtras

属性类型描述
pathstring写入 Cookie 的路径。
expiresstringCookie 的过期日期。

Type Aliases

GetCookieOptions


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

Omit

构造一个类型,该类型具有 T 的属性,但不包括类型 K 中的属性。


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

Pick

从 T 中选取一组键在联合类型 K 中的属性

{
[P in K]: T[P];
}

Exclude

从 T 中排除那些可分配给 U 的类型

T extends U ? never : T

SetCookieOptions


  HttpCookie & HttpCookieExtras

DeleteCookieOptions


  Omit<HttpCookie, 'value'>

ClearCookieOptions


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