as

Settings
Sign out
Notifications
Alexa
Amazonアプリストア
AWS
ドキュメント
Support
Contact Us
My Cases
開発
設計と開発
公開
リファレンス
サポート

react-native-cookies

react-native-cookies

@amazon-devices/react-native-cookiesライブラリは、React NativeアプリでCookieを管理する手段を提供します。

Cookieは、ウェブサイトの閲覧中にウェブブラウザによってユーザーのデバイスに保存される小さいデータです。Cookieは、ウェブサイトがステートフルな情報を記憶したり、ユーザーの閲覧アクティビティを記録したりするための信頼できるメカニズムとなるように設計されています。

インストール

  1. package.jsonファイルにJavaScriptライブラリの依存関係を追加します。

    クリップボードにコピーしました。

           "dependencies": {
             ...
             "@amazon-devices/react-native-cookies/cookies": "1.0.1+6.2.1",
             "@react-native-cookies/cookies": "6.2.1",
             ...
           }
    
  2. 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日