Vega WebView Cookie管理器
WebView Cookie管理器可用于以下用途:
- 在Cookie存储区中为URL添加序列化Cookie,该序列化Cookie附加到传出请求的Cookie请求标头上。
- 清除Cookie存储区中的所有Cookie。
Cookie是如何存储的
WebView管理Cookie的方式是将临时会话Cookie保留在活动内存中以便快速访问,同时将持久性Cookie安全地保存到应用的专用存储目录中。持久性Cookie是指具有特定到期日期的Cookie。开发者可以启用远程调试,并在连接的设备上使用Chrome DevTools应用面板,以检查和操纵这种已存储状态。此接口提供了一种查看当前来源(页面的架构、域和端口)上所有活跃Cookie的方法,让您能够实时编辑值、手动清除数据,以及确认是否已正确应用HttpOnly、Secure和SameSite等重要安全属性。
要对Cookie无法按预期运行的原因进行故障排除,请切换到DevTools网络面板,监控在网络请求期间交换的Cookie和Set-Cookie标头。这可以帮助您识别被拒绝的Cookie、语法错误和跨站点政策违规行为。
Cookie管理器详细信息
一个Cookie对象可以有以下字段:
| 字段 | 类型 | 是否必需? (是/否) | 描述 |
|---|---|---|---|
name |
字符串 | 是 | name是指该对的名称。 |
value |
字符串 | 是 | “value”是指该对的Cookie值。如果Cookie的值为空,则会被拒绝。这会导致无效操作。如果存在任何其他值,则值字段将保留为空值。 |
path |
字符串 | 否 | path属性的值为此Cookie指定了源服务器上的URL子集。如果未给出指定路径,则假定路径是设置Cookie的统一资源标识符 (URI)。 |
domain |
字符串 | 否 | domain属性的值指定Cookie对哪个域有效。如果未提供指定域,则其子域将无法访问该域。 |
version |
字符串 | 否 | 标识Cookie的状态管理规范的版本。默认值是一个空字符串。 |
expires |
字符串 | 否 | 以HTTP日期时间戳的形式表示Cookie的最大生命周期。应为ISO8601字符串。如果未提供过期字符串,则该Cookie将被视为会话Cookie,会一直持续到用户关闭WebView会话。 |
secure |
布尔值 | 否 | 将Cookie限制为HTTPS连接,以保证其安全。 |
httpOnly |
布尔值 | 否 | 防止JavaScript通过document.cookie访问Cookie。 |
export interface Cookie {
name: string;
value: string;
path?: string;
domain?: string;
version?: string;
expires?: string;
secure?: boolean;
httpOnly?: boolean;
}
在Cookie存储区中添加URL Cookie
CookieManager.set(url:string, Cookie:object)
示例如下:
import { CookieManager } from "@amazon-devices/webview";
CookieManager.set('https://YOUR_URL_HERE.com', {
name: 'Test-Cookie',
value: 'Test-Cookie-Value',
path: '/',
version: '1',
expires: '2024-01-01T12:30:00.00-05:00',
}).then((status) => {
console.log('CookieManager.set =>', status);
});
清除Cookie存储区中的所有Cookie
CookieManager.clearAll()
示例如下:
import { CookieManager } from "@amazon-devices/webview";
CookieManager.clearAll().then((status) => {
console.log('CookieManager.clearAll =>', status);
});
说明:
set()方法为URL设置单个Cookie。- 对于任何同名的现有Cookie,主机和路径会被替换。Domain值设置Cookie的主机,如此Set-Cookie文档中所述。
- Cookie存储区会忽略过期的Cookie。
- WebView实例共享Cookie存储区。不同的应用不共享Cookie存储区。同一应用中的多个WebView实例共享一个通用引擎,其中包括Cookie存储区。
- 该应用的React Native层此时无法读取Cookie存储区。
相关主题
Last updated: 2026年4月27日

