Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Translate Bluetooth (Web Bluetooth API) #14651

Merged
merged 2 commits into from
Jul 27, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 54 additions & 0 deletions files/ja/web/api/bluetooth/availabilitychanged_event/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
---
title: "Bluetooth: availabilitychanged イベント"
slug: Web/API/Bluetooth/availabilitychanged_event
l10n:
sourceCommit: 1f216a70d94c3901c5767e6108a29daa48edc070
---

{{APIRef("Bluetooth API")}}{{securecontext_header}}{{SeeCompatTable}}

`availabilitychanged` イベントは、{{Glossary("User Agent", "ユーザーエージェント")}}で Bluetooth システム全体が利用可能になるか利用不可能になったとき発火します。

## 構文

{{domxref("EventTarget.addEventListener", "addEventListener()")}} などのメソッドでイベント名を用いるか、イベントハンドラープロパティを設定します。

```js-nolint
addEventListener("availabilitychanged", (event) => { })

onavailabilitychanged = (event) => { }
```

## イベント型

汎用の {{domxref("Event")}} です。

## 例

Bluetooth の利用可能性の変化の通知を受け取るには、このように {{domxref("EventTarget.addEventListener", "addEventListener()")}} を用いて {{domxref("Bluetooth")}} インスタンスにハンドラーを追加するとよいです。

```js
Bluetooth.addEventListener("availabilitychanged", (event) => {
const availability = event.value;
});
```

別の方法として、`Bluetooth.onavailabilitychanged` イベントハンドラープロパティを用いて `availabilitychanged` イベントのハンドラーを構築できます。

```js
Bluetooth.onavailabilitychanged = (event) => {
const availability = event.value;
};
```

## 仕様書

{{Specifications}}

## ブラウザーの互換性

{{Compat}}

## 関連情報

- {{DOMxRef("Bluetooth.getAvailability")}}
54 changes: 54 additions & 0 deletions files/ja/web/api/bluetooth/getavailability/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
---
title: "Bluetooth: getAvailability() メソッド"
slug: Web/API/Bluetooth/getAvailability
l10n:
sourceCommit: 1f216a70d94c3901c5767e6108a29daa48edc070
---

{{securecontext_header}}{{SeeCompatTable}}{{APIRef("Bluetooth API")}}

{{DOMxRef("Bluetooth")}} インターフェイスの **`getAvailability()`** メソッドは、デバイスに Bluetooth アダプターがある場合は `true` を返し、そうでない場合は `false` を返します。(ユーザーがブラウザーを本当の値を公開しないよう設定した場合は除きます)

> **メモ:** `getAvailability()` が `true` を返す場合でも、ユーザーが Web Bluetooth API の使用を許可しないかもしれません。
> ({{DOMxRef("Bluetooth.requestDevice","navigator.bluetooth.requestDevice()")}} が {{DOMxRef("BluetoothDevice")}} で解決しないかもしれません)
> また、ユーザーはブラウザーを本当の値ではなく固定の値を返すよう設定する可能性があります。

## 構文

```js-nolint
getAvailability()
```

### 引数

なし

### 返値

{{JSxRef("Boolean")}} で解決する {{JSxRef("Promise")}} を返します。

## 例外

このメソッドは例外を投げません。

## 例

この断片は、Bluetooth に対応しているかを表すメッセージをコンソールに出力します。

```js
navigator.bluetooth.getAvailability().then((available) => {
if (available) {
console.log("このデバイスは Bluetooth に対応しています!");
} else {
console.log("残念!Bluetooth に対応していません");
}
});
```

## 仕様書

{{Specifications}}

## ブラウザーの互換性

{{Compat}}
38 changes: 38 additions & 0 deletions files/ja/web/api/bluetooth/getdevices/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
---
title: "Bluetooth: getDevices() メソッド"
slug: Web/API/Bluetooth/getDevices
l10n:
sourceCommit: 1f216a70d94c3901c5767e6108a29daa48edc070
---

{{securecontext_header}}{{SeeCompatTable}}{{APIRef("Bluetooth API")}}

[Web Bluetooth API](/ja/docs/Web/API/Web_Bluetooth_API) の {{DOMxRef("Bluetooth")}} インターフェイスの **`getDevices()`** メソッドは、オリジンがアクセスを許可されている Bluetooth デバイスを公開します。このメソッドは許可を要求するプロンプトを表示しません。

> **メモ:** このメソッドは、圏外だったり電源が切られていたりするものを含め、オリジンが現在アクセスを許可されている各デバイスに対応する {{DOMxRef("BluetoothDevice")}} を返します。

## 構文

```js-nolint
getDevices()
```

### 引数

なし

### 返値

{{DOMxRef("BluetoothDevice")}} の配列で解決する {{JSxRef("Promise")}} を返します。

## 例外

このメソッドは例外を投げません。

## 仕様書

{{Specifications}}

## ブラウザーの互換性

{{Compat}}
41 changes: 21 additions & 20 deletions files/ja/web/api/bluetooth/index.md
Original file line number Diff line number Diff line change
@@ -1,37 +1,38 @@
---
title: Bluetooth
slug: Web/API/Bluetooth
l10n:
sourceCommit: 15d7838061736509d08d642611bd26c1251c0500
---

{{ apiref("W3C Bluetooth API") }} {{Non-standard_header()}}
{{APIRef("Bluetooth API")}}{{securecontext_header}}{{SeeCompatTable}}

[Web Bluetooth API](/ja/Web/API/Web_Bluetooth_API) の **`Bluetooth`** インターフェースは、オプション指定した {{domxref("BluetoothDevice")}} {{jsxref("Promise")}} を返します。
[Web Bluetooth API](/ja/docs/Web/API/Web_Bluetooth_API) の **`Bluetooth`** インターフェイスは、指定のオプションに合致する {{domxref("BluetoothDevice")}} オブジェクトで解決する {{jsxref("Promise")}} を返します。

## インターフェース
{{InheritanceDiagram}}

```
interface Bluetooth {
Promise<BluetoothDevice> requestDevice(RequestDeviceOptions options);
};
Bluetooth implements EventTarget;
Bluetooth implements BluetoothDeviceEventHandlers;
Bluetooth implements CharacteristicEventHandlers;
Bluetooth implements ServiceEventHandlers;
```
## インスタンスプロパティ

## プロパティ
_親の {{domxref("EventTarget")}} からプロパティを継承します。_

なし
## インスタンスメソッド

## メソッド
- {{domxref("Bluetooth.getAvailability","Bluetooth.getAvailability()")}} {{Experimental_Inline}}
- : ユーザーエージェントに Bluetooth を扱う機能があるかを表す {{jsxref("boolean")}} 値で解決する {{jsxref("Promise")}} を返します。これが何を返すかに影響するオプションをユーザーが設定できるユーザーエージェントもあります。このオプションが設定されている場合、このメソッドはその値を返します。
- {{domxref("Bluetooth.getDevices","Bluetooth.getDevices()")}} {{Experimental_Inline}}
- : オリジンが既に {{domxref("Bluetooth.requestDevice","Bluetooth.requestDevice()")}} の呼び出しにより使用する許可を得ている {{domxref("BluetoothDevice")}} の配列で解決する {{jsxref("Promise")}} を返します。
- {{domxref("Bluetooth.requestDevice","Bluetooth.requestDevice()")}} {{Experimental_Inline}}
- : 指定のオプションに合致する {{domxref("BluetoothDevice")}} オブジェクトで解決する {{jsxref("Promise")}} を返します。

- {{domxref("Bluetooth.requestDevice()")}}
- : オプション指定した {{domxref("BluetoothDevice")}} の {{jsxref("Promise")}} を返す。
## イベント

## 仕様
- {{domxref("Bluetooth.availabilitychanged_event", "availabilitychanged")}} {{Experimental_Inline}}
- : Bluetooth の能力のうち利用可能性が変化したとき発火するイベントです。

## 仕様書

{{Specifications}}

## ブラウザー実装状況
## ブラウザーの互換性

{{Compat("api.Bluetooth")}}
{{Compat}}
85 changes: 85 additions & 0 deletions files/ja/web/api/bluetooth/requestdevice/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
---
title: "Bluetooth: requestDevice() メソッド"
slug: Web/API/Bluetooth/requestDevice
l10n:
sourceCommit: 1f216a70d94c3901c5767e6108a29daa48edc070
---

{{APIRef("Bluetooth API")}} {{securecontext_header}}{{SeeCompatTable}}

{{domxref("Bluetooth")}} インターフェイスの **`Bluetooth.requestDevice()`** メソッドは、指定のオプションに合致する {{domxref("BluetoothDevice")}} オブジェクトで解決する {{jsxref("Promise")}} を返します。選択用の UI が無い場合は、このメソッドは基準に合致する最初のデバイスを返します。

## 構文

```js-nolint
requestDevice()
requestDevice(options)
```

### 引数

- `options` {{optional_inline}}
- : デバイスの要求に関するオプションを設定するオブジェクトです。以下のオプションが利用可能です。
- `filters[]`
- `BluetoothScanFilters` の配列です。このフィルタは、`BluetoothServiceUUID` の配列、`name` パラメーター、`namePrefix` パラメーターからなります。
- `optionalServices[]`
- : `BluetoothServiceUUID` の配列です。
- `acceptAllDevices`
- : 要求を出しているスクリプトがすべての Bluetooth デバイスを受け入れるかを表す {{jsxref("boolean")}} 値です。デフォルトは `false` です。

### 返値

{{domxref("BluetoothDevice")}} オブジェクトで解決する {{jsxref("Promise")}} を返します。

### 例外

- {{jsxref("TypeError")}}
- : 指定された `options` が意味をなさないとき投げられます。
たとえば、`options.filters` が存在して、かつ `options.acceptAllDevices` が `true` に設定されている場合や、`options.filters` が存在せず、かつ `options.acceptAllDevices` が `false` に設定されている場合に投げられます。
`options.filters` が `[]` に設定されている場合も投げられます。
- `NotFoundError` {{domxref("DOMException")}}
- : 指定のオプションに合致する Bluetooth デバイスが存在しないとき投げられます。
- `SecurityError` {{domxref("DOMException")}}
- : 安全でないオリジンで呼び出されたときなど、現在のコンテキストでセキュリティの懸念によりこの操作が許可されないとき投げられます。

## 例

```js
// 以下のアドバタイズをしているデバイスにマッチする検索オプションを使用します。
// ・標準の心拍数サービス
// ・16 ビットのサービス ID が 0x1802 と 0x1803
// ・プロプライエタリーの 128 ビット UUID c48e6067-5295-48d3-8d5c-0395f61792b1 を持つサービス
// ・名前 "ExampleName" を持つデバイス
// ・名前が "Prefix" で始まるデバイス
//
// そして、デバイスが該当のサービスをアドバタイズしていない場合でも、
// デバイスに存在すれば、バッテリーサービスへのアクセスを有効化します。
let options = {
filters: [
{ services: ["heart_rate"] },
{ services: [0x1802, 0x1803] },
{ services: ["c48e6067-5295-48d3-8d5c-0395f61792b1"] },
{ name: "ExampleName" },
{ namePrefix: "Prefix" },
],
optionalServices: ["battery_service"],
};

navigator.bluetooth
.requestDevice(options)
.then((device) => {
console.log(`名前: ${device.name}`);
// デバイスに何かをする
})
.catch((error) => console.error(`何かがうまくいきませんでした。 ${error}`));
```

[詳細な例](https://webbluetoothcg.github.io/web-bluetooth/#example-filter-by-services)が仕様書にあります。

## 仕様書

{{Specifications}}

## ブラウザーの互換性

{{Compat}}