Web Component

Address Selector

住所検索と候補選択のUIを、Web ComponentとしてWebサイトやWebアプリケーションへ組み込みます。

PostcodeJP Docs
ドキュメントメニュー

Public Clientを準備する

  1. PostcodeJP管理画面へログインし、「料金プラン」でAddress Selectorの利用プランを有効にします。
  2. メニューの「Public Client」を開き、「作成」からPublic Clientを作成します。
  3. 機能にAddress Selectorを選び、「許可するWebサイト(Origin)」へWidgetを設置するWebサイトのOriginを登録します。
  4. 作成直後の画面に表示されるPublic Keyをコピーします。Public Keyは一覧画面で再表示できません。
  5. Public Keyを<postcodejp-address-selector public-key="...">へ設定します。
先にAddress Selectorの利用プランを有効にする

利用プランが有効になっていない場合、Public ClientでAddress Selectorを選択できません。

Public KeyはBrowserへ公開する用途の認証情報です。Public Keyから短時間有効なsessionを取得して利用するため、server-side secretとしては扱いません。ただし、許可したOriginからだけ利用できるようOrigin制限と組み合わせてください。

API Keyでは利用できません

Address Selectorのpublic-key属性へAddress Search API Keyを設定しても利用できません。Public Clientで発行したPublic Keyを設定してください。

Originはscheme + host + portで一致します

https://example.comに対して、http://example.comhttps://www.example.comhttps://example.com:8443はそれぞれ別のOriginです。パスやqueryはOriginへ含めません。

Quick start

fixed-version scriptを読み込み、<postcodejp-address-selector>public-keyを設定します。

HTML
<script src="https://js.postcode-jp.com/widgets/address-selector/v1.1.0/address-selector.js"></script>

<postcodejp-address-selector
  public-key="YOUR_PUBLIC_KEY"
  name-prefix="shipping"
  placeholder="住所を検索"
></postcodejp-address-selector>

料金と利用上限はAddress Search APIとは別です。Free / Standard / Businessの最新条件はAddress Selector料金を確認してください。

Attributes

Core

AttributeRequirementPurpose
public-key必須Origin制限付きPublic ClientのPublic Key
name-prefix任意生成されるhidden inputのname prefix
placeholder任意検索inputのplaceholder
disabled任意操作を無効化

Advanced

必要な表示・候補制御だけを指定してください。指定しない場合はcomponentのdefault動作を使用します。

AttributeValuePurpose
display-modeinline / dialog表示方法
include-generalboolean一般郵便番号を候補へ含めるか
include-officeboolean事業所郵便番号を候補へ含めるか
result-priorityauto / general / office候補の優先順
appearancecontained / embedded外観
selected-displayfull / compact / actions選択済み住所の表示
allow-manualboolean手入力を許可するか
trigger-labelstringdialogを開くbuttonのlabel
dialog-titlestringdialogのtitle
close-on-selectboolean選択後にdialogを閉じるか

Methods

MethodPurpose
open()selector UIを開く
close()selector UIを閉じる
focus()操作開始位置へfocus
reset()選択状態をclear
getValue()現在の選択値を取得

Events

すべてのpcjp:* eventはbubbleし、Shadow DOM境界を越えて伝播します。

detail.valueのfieldは選択結果によって異なり得るため、利用するfieldの存在を確認して扱ってください。

EventDetail
pcjp:openUIが開いた
pcjp:closeUIが閉じた
pcjp:select住所を選択。選択値はdetail.value
pcjp:change選択値が変更。変更後の値はdetail.value
pcjp:clear選択をclear
pcjp:error利用できない場合や設定に問題がある場合。診断情報はdetail.code
Event handling
const selector = document.querySelector("postcodejp-address-selector");

selector.addEventListener("pcjp:select", (event) => {
  const selectedAddress = event.detail.value;
  // 選択結果をアプリケーションへ反映
});

selector.addEventListener("pcjp:error", (event) => {
  // codeは診断情報として記録し、利用者には再試行などの案内を表示
  console.error(event.detail.code);
});

Error handling

pcjp:errordetail.codeは診断に利用できます。codeの一覧やdetail.statusの有無を固定せず、未知のcodeも扱えるようにしてください。

検索できない場合は入力を失わず、再試行や設定確認へ進める案内を表示してください。

Lifecycleとcleanup

  • componentはDOMへ追加すると利用できます。
  • 不要になったcomponentはDOMからremoveできます。
  • integration側で追加したevent listenerは、画面の破棄時に解除してください。

Accessibility

combobox、dialog、listbox、optionのsemantic rolesと、keyboard/focus操作、live region、選択状態のARIA属性を実装しています。

特定browserやassistive technologyの完全なsupport matrix、WCAGへの完全適合は、この公開契約では保証しません。導入先の実際の画面構成でkeyboardと読み上げを確認してください。