Contact

連絡先に格納された情報を表します。

プロパティー

  • id: 固定のIDを表します (DOMString)
  • displayName: 連絡先の名称を表します (DOMString)
  • name: 個人名に関するオブジェクトを表します (ContactName)
  • nickname: ニックネームを表します (DOMString)
  • phoneNumbers: 連絡先のすべての電話番号の配列を表します (ContactField[])
  • emails: 連絡先のすべてのメールアドレスの配列を表します (ContactField[])
  • addresses: 連絡先のすべての住所の配列を表します (ContactAddress[])
  • ims: 連絡先のすべてのIMアドレスの配列を表します (ContactField[])
  • organizations: 連絡先のすべての組織名の配列を表します (ContactOrganization[])
  • birthday: 連絡先の誕生日を表します (Date)
  • note: 連絡先のメモを表します (DOMString)
  • photos: 連絡先の写真の配列を表します (ContactField[])
  • categories: 連絡先のユーザー定義カテゴリーの配列を表します (ContactField[])
  • urls: 連絡先に関連したURLの配列を表します (ContactField[])

メソッド

  • clone: オブジェクトのディープコピーを行い、新しい Contact オブジェクトを作成して返します。 id プロパティーは null に設定されます。
  • remove: オブジェクトを連絡先データベースから削除します。 削除が失敗した場合は [ContactError](../ContactError/contactError.html) を伴ったエラーコールバック関数が呼び出されます。
  • save: 新しい連絡先を連絡先データベースに保存します。 id が既に登録されている場合は連絡先データベースを上書きします。

詳細

Contact オブジェクトはユーザーの連絡先を格納します。 連絡先はデバイスの連絡先データベースから作成したり、保存したり、削除することが可能です。 [contacts.find](../contacts.find.html) 関数を呼ぶことで、連絡先データベースから連絡先を取得することも出来ます。

注意: プラットフォームによっては、いくつかのフィールドがサポートされていない場合があります。プラットフォームごとの注意点に詳細を記載しています。

サポートされているプラットフォーム

  • Android
  • BlackBerry WebWorks (OS 5.0 以上)
  • iOS
  • Bada 1.2 & 2.0

保存する例

function onSuccess(contact) {
    alert("保存に成功しました。");
};

function onError(contactError) {
    alert("エラー = " + contactError.code);
};

// 新しい連絡先オブジェクトを作成
var contact = navigator.contacts.create();
contact.displayName = "Plumber";
contact.nickname = "Plumber";       // すべてのデバイスに対応するため、両方の項目をセット

// その他のフィールドを作成
var name = new ContactName();
name.givenName = "Jane";
name.familyName = "Doe";
contact.name = name;

// デバイスに保存
contact.save(onSuccess,onError);

コピーを行う例

// 連絡先オブジェクトをコピー
var clone = contact.clone();
clone.name.givenName = "John";
console.log("元の名前 = " + contact.name.givenName);
console.log("クローンの名前 = " + clone.name.givenName);

削除を行う例

function onSuccess() {
    alert("削除に成功しました。");
};

function onError(contactError) {
    alert("エラー = " + contactError.code);
};

// デバイスから連絡先を削除
contact.remove(onSuccess,onError);

詳細な使用例

<!DOCTYPE html>
<html>
  <head>
    <title>Contact の使用例</title>

    <script type="text/javascript" charset="utf-8" src="cordova-2.1.0.js"></script>
    <script type="text/javascript" charset="utf-8">

    // Cordova の読み込み完了まで待機
    //
    document.addEventListener("deviceready", onDeviceReady, false);

    // Cordova 準備完了
    //
    function onDeviceReady() {
        // 作成
        var contact = navigator.contacts.create();
        contact.displayName = "Plumber";
        contact.nickname = "Plumber";       // すべてのデバイスに対応するため、両方の項目をセット
        var name = new ContactName();
        name.givenName = "Jane";
        name.familyName = "Doe";
        contact.name = name;

        // 保存
        contact.save(onSaveSuccess,onSaveError);

        // クローンを作成
        var clone = contact.clone();
        clone.name.givenName = "John";
        console.log("元の名前 = " + contact.name.givenName);
        console.log("クローンの名前 = " + clone.name.givenName);

        // 削除
        contact.remove(onRemoveSuccess,onRemoveError);
    }

    // onSaveSuccess: 連絡先の取得に成功した場合
    //
    function onSaveSuccess(contact) {
        alert("保存に成功しました。");
    }

    // onSaveError: 連絡先の取得に失敗した場合
    //
    function onSaveError(contactError) {
        alert("エラー = " + contactError.code);
    }

    // onRemoveSuccess: 連絡先の取得に成功した場合
    //
    function onRemoveSuccess(contacts) {
        alert("削除に成功しました。");
    }

    // onRemoveError: 連絡先の取得に失敗した場合
    //
    function onRemoveError(contactError) {
        alert("エラー = " + contactError.code);
    }

    </script>
  </head>
  <body>
    <h1>使用例</h1>
    <p>連絡先の検索</p>
  </body>
</html>

Android 2.X に関する注意点

  • categories: このプロパティーは Android 2.X ではサポートされておらず、常に null を返します。

Android 1.X に関する注意点

  • name: このプロパティーは Android 1.X ではサポートされておらず、常に null を返します。
  • nickname: このプロパティーは Android 1.X ではサポートされておらず、常に null を返します。
  • birthday: このプロパティーは Android 1.X ではサポートされておらず、常に null を返します。
  • photos: このプロパティーは Android 1.X ではサポートされておらず、常に null を返します。
  • categories: このプロパティーは Android 1.X ではサポートされておらず、常に null を返します。
  • urls: このプロパティーは Android 1.X ではサポートされておらず、常に null を返します。

BlackBerry WebWorks (OS 5.0 and higher) に関する注意点

  • id: サポートされています。 連絡先が保存されたときに、デバイスによって割り当てられます。
  • displayName: サポートされています。 BlackBerry では user1 フィールドとして保存されます。
  • nickname: このプロパティーはサポートされておらず、常に null を返します。.
  • phoneNumbers: 部分的にサポートされています。 BlackBerry では、電話番号はもし type が 'home' の場合は homePhone1homePhone2 に、 type が 'work' の場合は workPhone1workPhone2 に、 type が 'mobile' の場合は mobilePhone に、 type が 'fax' の場合は faxPhone に、 type が 'pager' の場合は pagerPhone に、それ以外の場合は otherPhone に保存されます。
  • emails: 部分的にサポートされています。 BlackBerry では、最初の3メールアドレスが email1, email2, email3 フィールドに保存されます。
  • addresses: 部分的にサポートされています。 BlackBerry では、最初の2つの住所が homeAddressworkAddress フィールドに保存されます。
  • ims: このプロパティーはサポートされておらず、常に null を返します。
  • organizations: 部分的にサポートされています。 BlackBerry では、最初の組織の名前とタイトルが companytitle フィールドに保存されます。
  • photos: 部分的にサポートされています。 サムネイルサイズの写真のみサポートされています。 連絡先に写真を登録する場合、 Base64 エンコードされたイメージか、イメージの場所を指定する URL を渡します。 写真は BlackBerry の連絡先データベースに保存される前に縮小されます。 連絡先写真は Base64 エンコードされたイメージとして返されます。
  • categories: 部分的にサポートされています。 'Business' と 'Personal' カテゴリーのみサポートされています。
  • urls: 部分的にサポートされています。 BlackBerry では、最初の URL が webpage フィールドに保存されます。

iOS に関する注意点

  • displayName: このプロパティーは iOS ではサポートされておらず、 ContactName が指定されていない場合限り null を返します。 もし ContactName が指定されていない場合、合成された名前、 nickname 、または "" が displayName として返されます。
  • birthday: 入力として、このプロパティーは JavaScript の Date オブジェクトとして指定する必要があります。 JavaScript の Date オブジェクトとして返されます。
  • photos: 取得した写真はアプリの一時ディレクトリに保存され、写真への File URL が返されます。一時ディレクトリの中身はアプリを終了する際に削除されます。
  • categories: このプロパティーはサポートされておらず、常に null を返します。

Bada に関する注意点

  • displayName: このプロパティーはサポートされていません。
  • birthday: このプロパティーはサポートされていません。
  • photos: このプロパティーは写真へのURL1つを格納したリストです。
  • categories: このプロパティーはサポートされていません。
  • ims: このプロパティーはサポートされていません。