react-native-cookies
@amazon-devices/react-native-cookiesライブラリは、React NativeアプリでCookieを管理する手段を提供します。
Cookieは、ウェブサイトの閲覧中にウェブブラウザによってユーザーのデバイスに保存される小さいデータです。Cookieは、ウェブサイトがステートフルな情報を記憶したり、ユーザーの閲覧アクティビティを記録したりするための信頼できるメカニズムとなるように設計されています。
インストール
package.jsonファイルにJavaScriptライブラリの依存関係を追加します。"dependencies": { ... "@amazon-devices/react-native-cookies/cookies": "1.0.1+6.2.1", "@react-native-cookies/cookies": "6.2.1", ... }npm installコマンドを使用して、依存関係を再インストールします。
例
以下の例は、このライブラリに既に実装されているすべてのメソッドを示しています。
import CookieManager, { Cookie } from "@react-native-cookies/cookies";
import React, { useState } from 'react';
import { Button, ScrollView, StyleSheet, Text, View } from 'react-native';
const App = () => {
const [response, setResponse] = useState('');
const mockedCookie: Cookie = {
name: 'myCookie',
value: 'myValue',
domain: 'httpbin.org',
path: '/',
httpOnly: true,
expires: '2030-06-01T12:30:00.00-05:00'
};
const url = "https://httpbin.org";
const testMockedFunction = async (func: (...args: any[]) => Promise<any>, ...args: any) => {
try {
setResponse("");
await func(...args).then(
(result : any) => setResponse(JSON.stringify(result)),
(reject : any) => setResponse(JSON.stringify(reject))
);
} catch(err) {
if (err instanceof Error) {
setResponse(err.message);
}
}
};
const fetchTest = async () => {
setResponse("");
const result = await fetch("https://httpbin.org/get");
setResponse(`${await result.text()}`);
};
return (
<View style={styles.container}>
<View style={styles.textArea}>
<ScrollView>
<Text style={styles.text} numberOfLines={999}>
{response}
</Text>
</ScrollView>
</View>
<View style={[styles.buttonRow, { width: 800 }]}>
<Button title ={"httpbin.orgからフェッチ"} onPress={() => fetchTest()} />
<Button title={"setメソッドをテスト"} onPress={() => testMockedFunction(CookieManager.set, url, mockedCookie)} />
<Button title={"httpbin.orgのCookieを取得"} onPress={() => testMockedFunction(CookieManager.get, url)} />
<Button title={"すべてのCookieを消去"} onPress={() => testMockedFunction(CookieManager.clearAll)} />
</View>
</View>
);
}
const styles = StyleSheet.create({
container: {
backgroundColor: '#dfebeb',
justifyContent: 'center',
paddingHorizontal: 5,
flex: 1,
display: 'flex',
alignItems: 'center',
overflow: 'hidden',
},
textArea: {
width: 750,
height: 250,
alignItems: 'center',
marginVertical: 20
},
buttonRow: {
flexDirection: 'row',
marginVertical: 10,
justifyContent: 'space-between'
},
text: {
color: 'black',
fontFamily: 'monospace',
overflow: 'scroll',
flex: 1,
}
});
export default App;
APIリファレンス
@react-native-cookies/cookiesのGitHubリポジトリから、公式のREADMEを確認してください。
以下の一覧は、実装されている関数の現在の状態を示しています。
| メソッド | 説明 |
|---|---|
set |
CookieオブジェクトとURLを指定して、Cookieを設定します。 |
get |
URLに対するCookieを取得します。 |
clearAll |
Cookieを消去します。 |
- Cookieオブジェクトに
domainフィールドが指定されていない場合は、代わりにURLホストが使用されます。 - Cookieオブジェクトに
pathが指定されていない場合は、空のパス(/)と見なされます。 - Vegaプラットフォームでは、useWebKitパラメーターを受け取るメソッドで
useWebKit = trueを設定するとノーオペレーションになります。値を指定しない場合、useWebKitはデフォルトでfalseになります。 - URLを受け取るメソッドに不適切な形式のURLを渡すと、エラーメッセージが返されます。
実装の詳細
- Cookieオブジェクトの
expiresフィールドに指定できる日付と時刻の形式は、UTCからのオフセット付きのISO8601形式です。Vegaでは、これはCookieの設定後に常にGMTに変換されます。- たとえば、上記の例の
mockedCookieを設定した後、それ以降の取得操作で返されるタイムスタンプはexpires: '2030-06-01T17:30:00.00Z'になります。これは同じ時刻をGMTで表したものです。
- たとえば、上記の例の
getを使用してセッションCookie(expiresのないCookie)を取得すると、expiresフィールドに1970-01-01T00:00:00Zが設定されます。このCookieをほかのCookieマネージャーで使用する場合は、このフィールドをCookieから削除する必要が生じることがあります。削除しない場合、ほかのCookieマネージャーの実装(WebView Cookieマネージャーなど)では、有効期限が既に切れていると見なされる可能性があります。
サポートされているバージョン
| パッケージ名 | Amazon NPMライブラリのバージョン | Vega OSのビルド番号 | Vega SDKバージョン | リリースノート |
|---|---|---|---|---|
@amazon-devices/react-native-cookies__cookies |
1.0.1+6.2.1 | OS 1.1 (201010438050) |
0.20 |
関連リソース
その他のライブラリについては、サポート対象のサードパーティのライブラリとサービスを参照してください。
Last updated: 2025年10月2日

