SlideShare a Scribd company logo
Chrome Apps のデバイスAPI 
2014/10/30 
Webプラットフォーム部第四回ナイトセミナー 
HTML5 デバイス API 勉強会 
Toru Yoshikawa (@yoshikawa_̲t)
Who? 
吉川 徹 / Toru Yoshikawa 
@yoshikawa_̲t 
html5j 代表/html5j ビギナー部 副部⻑⾧長 
Google Developer Experts (Chrome) 
HTML5 Experts.jp エキスパートNo.3 
Web先端技術味⾒見見部 (顧問)/⽇日本 
jQuery Mobileユーザー会 (管理理⼈人)/ 
Sublime Text 2 Japan Users Group (管 
理理⼈人)などなど 
Blog: http://d.hatena.ne.jp/pikotea/
はじめに 
Chrome Apps は基本的にデスクトップをターゲットし 
ているため、モバイル固有のAPIはまだまだ揃っていま 
せん(ChromeOSをターゲットとしたものが多いです) 
Chrome Apps for mobile は、まだDeveloper Preview 
版でモバイル固有の機能が増えていくのはこれからだと 
思われます。 
例例えばスマートフォンを振動させるような⽤用途がある場 
合は、標準のAPI(Vibraton API)を利利⽤用しましょう
Chrome Apps のデバイスAPI 
API⼀一覧 
( https://developer.chrome.com/apps/api_̲index ) 
サンプル 
( https://developer.chrome.com/apps/samples ) 
各種デバイスとの通信系APIが豊富 
API⾃自体は低レイヤーなものが多く、扱うデバイスに関す 
る知識識が必要 
ぶっちゃけ⾟辛い
通信系API 
機能・説明ver mobile 
chrome.bluetooth Bluetoothデバイスと接続する37 × 
chrome.bluetoothLowEnergy Bluetooth Low Energy(Bluetooth LE) 37 × 
chrome.bluetoothSocket Bluetooth通信に利用する37 × 
chrome.serial シリアル接続23 ? 
chrome.usb USB接続26 × 
chrome.socket ソケット通信24 ◯ 
chrome.sockets.tcp ソケット通信(TCP) 33 × 
chrome.sockets.tcpServer ソケット通信(TCPサーバー) 33 × 
chrome.sockets.udp ソケット通信(UDP) 33 ×
システム系API 
機能・説明ver mobile 
chrome.power 電源管理(Keep Awake) 27 ◯ 
chrome.system.cpu CPU情報の取得32 ◯ 
chrome.system.display ディスプレイ情報の取得・設定30 ◯ 
chrome.system.memory メモリ情報の取得32 ◯ 
chrome.system.network NIC情報の取得33 ◯ 
chrome.system.storage 外部ストレージ情報の取得など(eject等も可能) 24 ◯
その他のAPI 
機能・説明ver mobile 
chrome.fileSystem ローカルファイルの読み書き23 △ 
chrome.hid ヒューマンインターフェースデバイス接続38 ×
USB接続の簡易易⼿手順① 
manifest.jsonにパーミッションを記述 
"permissions": [ 
"usb" 
] 
デバイスを固定する場合(IDは10進数で) 
"permissions": [ 
"usbDevices": [ 
{ 
"vendorId": 123, 
"productId": 456 
} 
] 
]
USB接続の簡易易⼿手順① 
macの場合
USB接続の簡易易⼿手順② 
getDevicesでデバイスを探す 
function onDeviceFound(devices) { 
this.devices=devices; 
if (devices) { 
if (devices.length > 0) { 
console.log("Device(s) found: "+devices.length); 
} else { 
console.log("Device could not be found"); 
} 
} else { 
console.log("Permission denied."); 
} 
} 
! 
chrome.usb.getDevices({"vendorId": vendorId, "productId": 
productId}, onDeviceFound);
USB接続の簡易易⼿手順③ 
openDeviceでデバイスと接続 
var usbConnection = null; 
var onOpenCallback = function(connection) { 
if (connection) { 
usbConnection = connection; 
console.log("Device opened."); 
} else { 
console.log("Device failed to open."); 
} 
}; 
! 
chrome.usb.openDevice(device, onOpenCallback);
USB接続の簡易易⼿手順④ 
bulkTransfer(バルク転送)でデータを受け取る 
var onTransferCallback = function(event) { 
if (event && event.resultCode === 0 && event.data) { 
console.log("got " + event.data.byteLength + " bytes"); 
} 
}; 
! 
chrome.usb.bulkTransfer(connectionHandle, transferInfo, 
onTransferCallback);
USB接続の簡易易⼿手順 
その他のメソッドなど 
デバイス制御 
chrome.usb.controlTransfer 
アイソクロナス転送(⼀一定帯域の転送を保証する) 
chrome.usb.isochronousTransfer 
割り込み転送 
chrome.usb.interruptTransfer 
メソッドの選択や細かいパラメータの指定などで、基本的 
なUSBの知識識が必要
おまけ 
Chrome App NFC Library 
( https://github.com/ 
GoogleChrome/chrome-‐‑‒nfc ) 
chrome.nfcでNFCを扱える 
(内部はchrome.usbを利利⽤用) 
https://plus.google.com/+FrancoisBeaufort/posts/CWTm2GaZRLJ
Chrome Apps のデバイスAPI 
最初にいった通り、デバイス固有の機能について 
はまだまだ揃っていないので、もしChrome 
Apps for mobileを利利⽤用するならCordovaのAPI 
を利利⽤用することも検討したほうが良良いかも 
実は、Chrome Apps for Mobileも対応APIが少 
ない状態…
Thank you!! 
(@yoshikawa_̲t)

More Related Content

What's hot (20)

PDF
マイクロソフトにとってのWebって?
Microsoft
 
PDF
ROS.js の紹介
Honma Masashi
 
PDF
HTML5 NIGHT 08. Web × パフォーマンス技術
Yoichiro Takehora
 
PDF
プロダクト開発してわかったDjangoの深〜いパーミッション管理の話 @ PyconJP2017
hirokiky
 
PDF
Djangoフレームワークのユーザーモデルと認証
Shinya Okano
 
PDF
20200516 selenium-meetup-winappdriver
Hiroko Tamagawa
 
PPTX
仕事で使うちょっとしたコードをOSSとして開発メンテしていく - Django Redshift Backend の開発 - PyCon JP 2016
Takayuki Shimizukawa
 
PDF
Google Apps Scirpt勉強会 #1
ikikko
 
PPT
公開型CMSとしてのTrac
Kazuya Hirobe
 
PPTX
PWAについて
iPride Co., Ltd.
 
PDF
Openness, Innovation and Opptunity
Makoto Kato
 
PDF
オフラインWebアプリの再到来で今、再び注目されるAPIの本命 ーJavaScript SQL-like database
yoshikawa_t
 
PPTX
開発を彩る技術たち
Oda Shinsuke
 
PDF
Djangoのススメ
Alisue Lambda
 
ODP
Djangoアプリの実践的設計手法
Ian Lewis
 
PDF
Vue.js with Go
Kazuhiro Kubota
 
PDF
Bot Framework v4 開発 Tips 2018-11
Atsushi Yokohama (BEACHSIDE)
 
PDF
Ginとbindataで作るシングルバイナリWebApp
Akihiko Horiuchi
 
PPT
Air forandroidreader
Noboru Ootsuka
 
マイクロソフトにとってのWebって?
Microsoft
 
ROS.js の紹介
Honma Masashi
 
HTML5 NIGHT 08. Web × パフォーマンス技術
Yoichiro Takehora
 
プロダクト開発してわかったDjangoの深〜いパーミッション管理の話 @ PyconJP2017
hirokiky
 
Djangoフレームワークのユーザーモデルと認証
Shinya Okano
 
20200516 selenium-meetup-winappdriver
Hiroko Tamagawa
 
仕事で使うちょっとしたコードをOSSとして開発メンテしていく - Django Redshift Backend の開発 - PyCon JP 2016
Takayuki Shimizukawa
 
Google Apps Scirpt勉強会 #1
ikikko
 
公開型CMSとしてのTrac
Kazuya Hirobe
 
PWAについて
iPride Co., Ltd.
 
Openness, Innovation and Opptunity
Makoto Kato
 
オフラインWebアプリの再到来で今、再び注目されるAPIの本命 ーJavaScript SQL-like database
yoshikawa_t
 
開発を彩る技術たち
Oda Shinsuke
 
Djangoのススメ
Alisue Lambda
 
Djangoアプリの実践的設計手法
Ian Lewis
 
Vue.js with Go
Kazuhiro Kubota
 
Bot Framework v4 開発 Tips 2018-11
Atsushi Yokohama (BEACHSIDE)
 
Ginとbindataで作るシングルバイナリWebApp
Akihiko Horiuchi
 
Air forandroidreader
Noboru Ootsuka
 

Similar to Chrome Apps のデバイスAPI (20)

PPTX
9th nov2012 kof2012
Kensaku Komatsu
 
PDF
Chrome Apps 概要
yoshikawa_t
 
PDF
Chrome Apps & Chromeウェブストア概要
yoshikawa_t
 
PDF
JavaScriptでいいじゃなイカ
Yuuichi Akagawa
 
PPTX
HTML5&API総まくり
Shumpei Shiraishi
 
PDF
Firefox OS - Blaze Your Own Path
dynamis
 
PDF
Mobile Web
Makoto Kato
 
PDF
HTML5 APIを使ったデモとソースの解説
Hideki Akiba
 
PDF
NDS31 はじめてChrome App
civic Sasaki
 
PDF
デバイス WebAPI設計の進め方
Device WebAPI Consortium
 
PDF
Kilimanjaro Event
dynamis
 
PDF
Chrome apps for mobile 概要
yoshikawa_t
 
PPTX
Mashup Award 7 Caravan in Fukuoka
Kazumi Hirose
 
PDF
MashupAward7 Microsoft Presentation
Shinichiro Isago
 
PPTX
HTML5最新動向
Shumpei Shiraishi
 
KEY
組込み技術とモバイル技術
Tomo Watanabe
 
PDF
デバイス WebAPI(GotAPI)とその活用事例のご紹介 - ワイヤレスジャパン2016
Device WebAPI Consortium
 
PDF
I phone5 ios6
Vitalify - SPINOFF
 
PPTX
Phone gap+javascriptスマホアプリ開発(入門編)
Monaca
 
PDF
組み込みでも使えるFirefox OS
Noritada Shimizu
 
9th nov2012 kof2012
Kensaku Komatsu
 
Chrome Apps 概要
yoshikawa_t
 
Chrome Apps & Chromeウェブストア概要
yoshikawa_t
 
JavaScriptでいいじゃなイカ
Yuuichi Akagawa
 
HTML5&API総まくり
Shumpei Shiraishi
 
Firefox OS - Blaze Your Own Path
dynamis
 
Mobile Web
Makoto Kato
 
HTML5 APIを使ったデモとソースの解説
Hideki Akiba
 
NDS31 はじめてChrome App
civic Sasaki
 
デバイス WebAPI設計の進め方
Device WebAPI Consortium
 
Kilimanjaro Event
dynamis
 
Chrome apps for mobile 概要
yoshikawa_t
 
Mashup Award 7 Caravan in Fukuoka
Kazumi Hirose
 
MashupAward7 Microsoft Presentation
Shinichiro Isago
 
HTML5最新動向
Shumpei Shiraishi
 
組込み技術とモバイル技術
Tomo Watanabe
 
デバイス WebAPI(GotAPI)とその活用事例のご紹介 - ワイヤレスジャパン2016
Device WebAPI Consortium
 
I phone5 ios6
Vitalify - SPINOFF
 
Phone gap+javascriptスマホアプリ開発(入門編)
Monaca
 
組み込みでも使えるFirefox OS
Noritada Shimizu
 
Ad

More from yoshikawa_t (20)

PDF
Ionicで作るTechfeed
yoshikawa_t
 
PDF
困った時のDev toolsの使い方(初心者向け)
yoshikawa_t
 
PDF
TechFeedというテクノロジーキュレーションサービスを作った話
yoshikawa_t
 
PDF
Chrome DevTools Awesome 10 Features +1
yoshikawa_t
 
PDF
これからのモバイルWebと最新動向
yoshikawa_t
 
PDF
いまさら聞けないHTML5概要
yoshikawa_t
 
PDF
jQuery Mobile is not dead!
yoshikawa_t
 
PDF
HTML5開発最前線
yoshikawa_t
 
PDF
Chrome DevTools for beginners v1.2
yoshikawa_t
 
PDF
モバイル時代のWebパフォーマンス
yoshikawa_t
 
PDF
モバイル時代のWebパフォーマンスTips
yoshikawa_t
 
PDF
Chrome Devtools for beginners (v1.1)
yoshikawa_t
 
PDF
Html5概要 & デモ
yoshikawa_t
 
PDF
いまさら聞けないCSSレイアウト入門
yoshikawa_t
 
PDF
Sencha touch vs j query mobile
yoshikawa_t
 
PDF
jQuery MobileとHTML5
yoshikawa_t
 
PDF
最近のブラウザ状況
yoshikawa_t
 
PDF
Let's begin WebRTC
yoshikawa_t
 
PDF
Chrome DevTools for beginners
yoshikawa_t
 
PDF
jQuery Mobile 1.3 最新情報
yoshikawa_t
 
Ionicで作るTechfeed
yoshikawa_t
 
困った時のDev toolsの使い方(初心者向け)
yoshikawa_t
 
TechFeedというテクノロジーキュレーションサービスを作った話
yoshikawa_t
 
Chrome DevTools Awesome 10 Features +1
yoshikawa_t
 
これからのモバイルWebと最新動向
yoshikawa_t
 
いまさら聞けないHTML5概要
yoshikawa_t
 
jQuery Mobile is not dead!
yoshikawa_t
 
HTML5開発最前線
yoshikawa_t
 
Chrome DevTools for beginners v1.2
yoshikawa_t
 
モバイル時代のWebパフォーマンス
yoshikawa_t
 
モバイル時代のWebパフォーマンスTips
yoshikawa_t
 
Chrome Devtools for beginners (v1.1)
yoshikawa_t
 
Html5概要 & デモ
yoshikawa_t
 
いまさら聞けないCSSレイアウト入門
yoshikawa_t
 
Sencha touch vs j query mobile
yoshikawa_t
 
jQuery MobileとHTML5
yoshikawa_t
 
最近のブラウザ状況
yoshikawa_t
 
Let's begin WebRTC
yoshikawa_t
 
Chrome DevTools for beginners
yoshikawa_t
 
jQuery Mobile 1.3 最新情報
yoshikawa_t
 
Ad

Recently uploaded (7)

PDF
[Hardening Designers Confernece 2025]ランサムウェアでの見えざるログ・見えるログ
kataware
 
PDF
20250710_Devinで切り拓くDB革命_〜価値創出に集中せよ〜.pdf
Masaki Yamakawa
 
PDF
20250717_Devin×GitHubCopilotで10人分の仕事は出来るのか?.pdf
Masaki Yamakawa
 
PDF
プライバシ保護のためのインターネットアーキテクチャの進化 (2025-07-11)
Jun Kurihara
 
PDF
20250711_日本IBM ミドルウエア・ユーザー研究会(JIMUC)総会_中村会長資料.pdf
ChikakoInami1
 
PDF
20250711JIMUC総会IBM Automation_Platform最新情報_Connpass公開版.pdf
ChikakoInami1
 
PDF
PostgreSQL18新機能紹介(db tech showcase 2025 発表資料)
NTT DATA Technology & Innovation
 
[Hardening Designers Confernece 2025]ランサムウェアでの見えざるログ・見えるログ
kataware
 
20250710_Devinで切り拓くDB革命_〜価値創出に集中せよ〜.pdf
Masaki Yamakawa
 
20250717_Devin×GitHubCopilotで10人分の仕事は出来るのか?.pdf
Masaki Yamakawa
 
プライバシ保護のためのインターネットアーキテクチャの進化 (2025-07-11)
Jun Kurihara
 
20250711_日本IBM ミドルウエア・ユーザー研究会(JIMUC)総会_中村会長資料.pdf
ChikakoInami1
 
20250711JIMUC総会IBM Automation_Platform最新情報_Connpass公開版.pdf
ChikakoInami1
 
PostgreSQL18新機能紹介(db tech showcase 2025 発表資料)
NTT DATA Technology & Innovation
 

Chrome Apps のデバイスAPI

  • 1. Chrome Apps のデバイスAPI 2014/10/30 Webプラットフォーム部第四回ナイトセミナー HTML5 デバイス API 勉強会 Toru Yoshikawa (@yoshikawa_̲t)
  • 2. Who? 吉川 徹 / Toru Yoshikawa @yoshikawa_̲t html5j 代表/html5j ビギナー部 副部⻑⾧長 Google Developer Experts (Chrome) HTML5 Experts.jp エキスパートNo.3 Web先端技術味⾒見見部 (顧問)/⽇日本 jQuery Mobileユーザー会 (管理理⼈人)/ Sublime Text 2 Japan Users Group (管 理理⼈人)などなど Blog: http://d.hatena.ne.jp/pikotea/
  • 3. はじめに Chrome Apps は基本的にデスクトップをターゲットし ているため、モバイル固有のAPIはまだまだ揃っていま せん(ChromeOSをターゲットとしたものが多いです) Chrome Apps for mobile は、まだDeveloper Preview 版でモバイル固有の機能が増えていくのはこれからだと 思われます。 例例えばスマートフォンを振動させるような⽤用途がある場 合は、標準のAPI(Vibraton API)を利利⽤用しましょう
  • 4. Chrome Apps のデバイスAPI API⼀一覧 ( https://developer.chrome.com/apps/api_̲index ) サンプル ( https://developer.chrome.com/apps/samples ) 各種デバイスとの通信系APIが豊富 API⾃自体は低レイヤーなものが多く、扱うデバイスに関す る知識識が必要 ぶっちゃけ⾟辛い
  • 5. 通信系API 機能・説明ver mobile chrome.bluetooth Bluetoothデバイスと接続する37 × chrome.bluetoothLowEnergy Bluetooth Low Energy(Bluetooth LE) 37 × chrome.bluetoothSocket Bluetooth通信に利用する37 × chrome.serial シリアル接続23 ? chrome.usb USB接続26 × chrome.socket ソケット通信24 ◯ chrome.sockets.tcp ソケット通信(TCP) 33 × chrome.sockets.tcpServer ソケット通信(TCPサーバー) 33 × chrome.sockets.udp ソケット通信(UDP) 33 ×
  • 6. システム系API 機能・説明ver mobile chrome.power 電源管理(Keep Awake) 27 ◯ chrome.system.cpu CPU情報の取得32 ◯ chrome.system.display ディスプレイ情報の取得・設定30 ◯ chrome.system.memory メモリ情報の取得32 ◯ chrome.system.network NIC情報の取得33 ◯ chrome.system.storage 外部ストレージ情報の取得など(eject等も可能) 24 ◯
  • 7. その他のAPI 機能・説明ver mobile chrome.fileSystem ローカルファイルの読み書き23 △ chrome.hid ヒューマンインターフェースデバイス接続38 ×
  • 8. USB接続の簡易易⼿手順① manifest.jsonにパーミッションを記述 "permissions": [ "usb" ] デバイスを固定する場合(IDは10進数で) "permissions": [ "usbDevices": [ { "vendorId": 123, "productId": 456 } ] ]
  • 10. USB接続の簡易易⼿手順② getDevicesでデバイスを探す function onDeviceFound(devices) { this.devices=devices; if (devices) { if (devices.length > 0) { console.log("Device(s) found: "+devices.length); } else { console.log("Device could not be found"); } } else { console.log("Permission denied."); } } ! chrome.usb.getDevices({"vendorId": vendorId, "productId": productId}, onDeviceFound);
  • 11. USB接続の簡易易⼿手順③ openDeviceでデバイスと接続 var usbConnection = null; var onOpenCallback = function(connection) { if (connection) { usbConnection = connection; console.log("Device opened."); } else { console.log("Device failed to open."); } }; ! chrome.usb.openDevice(device, onOpenCallback);
  • 12. USB接続の簡易易⼿手順④ bulkTransfer(バルク転送)でデータを受け取る var onTransferCallback = function(event) { if (event && event.resultCode === 0 && event.data) { console.log("got " + event.data.byteLength + " bytes"); } }; ! chrome.usb.bulkTransfer(connectionHandle, transferInfo, onTransferCallback);
  • 13. USB接続の簡易易⼿手順 その他のメソッドなど デバイス制御 chrome.usb.controlTransfer アイソクロナス転送(⼀一定帯域の転送を保証する) chrome.usb.isochronousTransfer 割り込み転送 chrome.usb.interruptTransfer メソッドの選択や細かいパラメータの指定などで、基本的 なUSBの知識識が必要
  • 14. おまけ Chrome App NFC Library ( https://github.com/ GoogleChrome/chrome-‐‑‒nfc ) chrome.nfcでNFCを扱える (内部はchrome.usbを利利⽤用) https://plus.google.com/+FrancoisBeaufort/posts/CWTm2GaZRLJ
  • 15. Chrome Apps のデバイスAPI 最初にいった通り、デバイス固有の機能について はまだまだ揃っていないので、もしChrome Apps for mobileを利利⽤用するならCordovaのAPI を利利⽤用することも検討したほうが良良いかも 実は、Chrome Apps for Mobileも対応APIが少 ない状態…