SlideShare a Scribd company logo
Web Intents入
     門

  白石俊平 @Shumpei
自己紹介

   株式会社オープンウェブ・テクノロジー代表

   今年からシーエー・モバイル株式会社 Web先
    端技術 フェローに就任しました。

   HTML5とか勉強会主催、html5j.org管理人

   Google API Expert (HTML5)

   Microsoft Most Valuable Professional 2011 (IE)

   Twitter ID: @Shumpei
アジェンダ

   Web Intentsとは何か?

   Web Intentsをプログラムから利用する

   Web IntentsはWebをどう変えるか?
Web Intentsとは何か?
Web Intentsとは何か?

     Androidの「インテント」をWebアプリどう
      しで実現する仕組み

     2011年6月にGoogleがアイデアを公開し、
      現在はW3Cで標準化作業中(仕様書)

            App1



App
           Platform
App


            App2
インテントの登場人物は三種類。

          クライアント・・・インテントの呼び出し
           元となるアプリケーション

          UA・・・Web Intentsを管理するプラット
           フォーム。通常はWebブラウザ

          サービス・・・インテントを処理するWeb
           アプリ


クライア
              UA          サービス
 ント
サービスの登録
 ユーザがサービスのWebページにアクセスする。Webアプリ2の
 <head>内には、<intent>要素が含まれている


• ブラウザは、このWebサービスをインテント処理可能なアプリケー
  ションとして登録する
サービスの登録UI




    Grenn Jonesさんのブログより引用
サービスの管理UI




    Grenn Jonesさんのブログより引用
インテント処理の流れ
   ユーザがWebアプリ(クライアント)上で、インテントを要求するような操作を行う

   クライアントは、ブラウザに対してインテントの処理を要求する



• ブラウザは、登録済みのWebアプリ(サービス)の中からインテン
  トを処理できるアプリの一覧を表示する
• ユーザはサービスを選択する
• ブラウザはそのサービスを起動し、インテントを渡す

• サービスは、渡されたインテントを元に処理を行い、結果を返す

• ブラウザは、処理結果をクライアントに戻す

• クライアントに処理が戻る
サービスの選択UI




    Grenn Jonesさんのブログより引用
Web Intentsをプログラム
から利用する
説明にあたっての前提

    以下は、「Web Intents - W3C Editor's Draft 04 January 2012」を元
     に解説します。
        今後も仕様は変更される可能性が高いです。

    また、webintents.orgで配布されているJavaScript shimを使って、
     デモの動作検証を行なっています。
        JavaScript shimは、Web Intentsを使用したいページに以下の
         <script>要素を含めることで利用できます。

<script src="//webintents.org/webintents.js"></script>
サービスの登録

                     <intent>要素を含むWebアプリにアクセスす
                      ると、ブラウザはそのアプリケーションを
                      「インテント処理可能なアプリ」として登
                      録する

                     <intent>は複数指定可能
<intent
 action="インテントのアクション(URL形式)"
 type="処理可能なコンテントタイプ"
 href="アプリケーションのURI"
 title="アプリケーションのタイトル"
 disposition="アプリケーションの開き方(window|inline)"
/>
インテントのアクション

                                 URL形式の文字列で指定。この文字列を
                                  キーとしてアプリが登録される

                                 以下のようなアクションがデフォルトで利
                                  用可能

http://webintents.org/discover       登録されたAPI/サービスを検索
http://webintents.org/share          データの共有
http://webintents.org/edit           データの編集
http://webintents.org/view           データの閲覧
http://webintents.org/pick           ファイルを外部サービスから取得
http://webintents.org/subscribe      データの購読
http://webintents.org/save           データの保存
<intent>要素の使用例
テキストデータの編集を行えるアプリケーション
<intent
 action="http://webintents.org/edit"
 type="text/*"
 href="editor.html"
 title="マイエディタ"
 disposition="window"
/>

短縮URL生成サービス(独自のアクションを定義)
<intent
 action="http://example.com/shorten"
 type="text/uri-list"
 href="shorten.html"
 title="Goo.gl URL Shorter"
 disposition="inline"
/>
インテント処理の呼び出し

// Intentオブジェクトの生成
var intent = new Intent(
  "http://webintents.org/edit", // アクション
  "text/plain", // コンテントタイプ
  "data" // データ
);
// action/type/dataと言ったプロパティを持つ
console.log("action:" + intent.action);
console.log("type:" + intent.type);
console.log("data:" + intent.data);

// インテント処理の呼び出し
navigator.startActivity(intent, onSuccess, onFailure)
インテントデータの処理

// Intentオブジェクトの生成
var intent = window.intent;
var data = intent.data;

…渡されたデータを処理…

// 結果を呼び出し元に返す
intent.postResult(result);
Web IntentsはWebをどう変えるか?
Webサービス間連携をよりス
               ムーズに

   「Tweet」ボタンや「いいね!」ボタンが消える
Webサービス間連携をよりス
               ムーズに

   ファイルの処理方法を自由に選べる

   →ひいては、個々のWebアプリの単機能化が促進されるだろう
Webサービス間連携をよりス
                ムーズに

   一度でもアクセスされたWebアプリが「忘れられる」ことが減るので
    は?

   少なくとも、そう考える事業者が多くなれば、Web Intentsは圧倒的な
    速度で広まると思える。

   その他、様々なユースケースが考えられる
       認証
       課金処理
ローカルとクラウドの境界を
              超えて

   例:コンタクト情報の取得を、ローカル/クラウドのアドレス帳から
    行う

   例:画像編集ソフトにおいて、編集対象の画像を、ローカル/クラウ
    ドのギャラリーから取得する


                      App2



      App1     UA


                      App2
ホームネットワークでの応用
               も検討中
   例:スマホで遭遇したYoutubeコンテンツをTVで視聴・操作

   例:HDDレコーダー内の動画をタブレットで視聴
ホームネットワーク+Web
                        Intentsの検討課題

   「UAにデバイス(サービス)をどう登録するか」と、「Webアプリ⇔
    デバイス間の通信処理をどう実現するか」が主な論点
       デバイスのディスカバリを、誰がどこまで行うか?
       デバイスとの永続的な通信の確立方法
           現在のWeb Intentsは、一回限りのRPCモデル
           MessagePortを使用して、永続的な接続を確立しては?
       デバイスとの通信プロトコルを処理するのはUA?アプリケーショ
        ン?
まとめ
まとめ

   Web Intentsは、Webアプリ間でインテント
    を実現するだけでなく、Webアプリとネイ
    ティブアプリの境界や、デバイスの境界を
    またいだサービス連携を実現する!

   ホームネットワークでも存在感を発揮する
    はず

   Webサービスのあり方が大きく変わる可能
    性も?

   これからもWeb Intentsに刮目せよ!
参考文献

   webintents.org
     Web Intentsを試すことの出来るJavaScript shimを利用できる。手軽
      にWeb Intentsを知りたければ、このサイトを参照すべし。

   Web IntentsタスクフォースのWiki
     Web Intentsに関する情報のポータルと言っても良い。Web Intentsに
      ついて多少詳しく知りたければこちら。
     Web Intentsとホームネットワークについてのページは参考になる。
   W3Cのメーリングリスト。最新動向を知るならこちら。

   Web Intents (Editor's Draft)
     参照可能なドラフト仕様。
   Web Intentsに深く関わっている、Glenn Jonesさんのブログポスト
参考リンク

   Chromium BlogでもWeb Intentsに言及

   Networked Service Discovery and Messaging
     サービスディスカバリや通信に関する、Operaによる非公式の仕様
   Requirements for Home Networking Scenarios
     ホームネットワークにおける要件をまとめたW3Cのレポート
   Web Intentsに関する、スタッフ小松さんのブログポスト。貴重な日本語情報

   Activity Streams
     インテントのアクションやデータ形式をここから参照しようか、という話はよく見受
      けられる

   Web Introducer・・・関連はありそうだが、おそらくもうアップデートされなそうな
    W3C仕様

   TwitterのWeb Intents・・・直接の関連はないが、UXの参考によく挙げられる
ご清聴ありがとうございました!



                  @Shumpei

More Related Content

PDF
Best Practices for Running PostgreSQL on AWS
PDF
Windows Virtual Desktop 構築手順書(202001)
PDF
Fess/Elasticsearchを使った業務で使える?全文検索への道
PDF
Office 365 管理者が押さえておきたい PowerShell コマンド
PDF
AWSでAPI Gatewayから非同期でLambdaを起動してS3にファイルアップロードしようとしたらハマった話。
PDF
今更聞けないOAuth2.0
PDF
HCL Domino エージェントとトラブルシューティング
PDF
Spring bootでweb セキュリティ(ログイン認証)編
Best Practices for Running PostgreSQL on AWS
Windows Virtual Desktop 構築手順書(202001)
Fess/Elasticsearchを使った業務で使える?全文検索への道
Office 365 管理者が押さえておきたい PowerShell コマンド
AWSでAPI Gatewayから非同期でLambdaを起動してS3にファイルアップロードしようとしたらハマった話。
今更聞けないOAuth2.0
HCL Domino エージェントとトラブルシューティング
Spring bootでweb セキュリティ(ログイン認証)編

What's hot (20)

PDF
Azure Data Explorer
PDF
なぜOpenID Connectが必要となったのか、その歴史的背景
PPTX
ファイルサーバーを SharePoint に移行するためのアプローチ
PPTX
非エンジニアのSQL活用が加速させる事業成長
PDF
ACI3.0(1k) Release
PDF
AzureActiveDirectoryの認証の話(Azure周りの自動化編)
PDF
Microsoft Azure Storage 概要
PDF
VPC Reachability Analyzer 使って人生が変わった話
PPTX
Azure Cosmos DB のキホンと使いドコロ
PPTX
急なトラフィック増にも動じない、Amazon S3とCloudFrontを活用したWebサイト構築
PPTX
「ネットワーク超入門 IPsec VPN編」
PPTX
Oracle常駐接続プーリング(DRCP)を導入した話
PPTX
Keycloakの実際・翻訳プロジェクト紹介
PDF
AWSではじめるDNSSEC
PDF
SharePoint Online へのアクセスを制限しよう
PDF
しつこくXenとzfsで作る家庭内vdiサーバ2015年版
PDF
最近のBurp Suiteについて調べてみた
PDF
OCHaCafe#5 - 避けては通れない!認証・認可
PDF
Android カスタムROMの作り方
PPTX
FiNC DDD第一回勉強会
Azure Data Explorer
なぜOpenID Connectが必要となったのか、その歴史的背景
ファイルサーバーを SharePoint に移行するためのアプローチ
非エンジニアのSQL活用が加速させる事業成長
ACI3.0(1k) Release
AzureActiveDirectoryの認証の話(Azure周りの自動化編)
Microsoft Azure Storage 概要
VPC Reachability Analyzer 使って人生が変わった話
Azure Cosmos DB のキホンと使いドコロ
急なトラフィック増にも動じない、Amazon S3とCloudFrontを活用したWebサイト構築
「ネットワーク超入門 IPsec VPN編」
Oracle常駐接続プーリング(DRCP)を導入した話
Keycloakの実際・翻訳プロジェクト紹介
AWSではじめるDNSSEC
SharePoint Online へのアクセスを制限しよう
しつこくXenとzfsで作る家庭内vdiサーバ2015年版
最近のBurp Suiteについて調べてみた
OCHaCafe#5 - 避けては通れない!認証・認可
Android カスタムROMの作り方
FiNC DDD第一回勉強会

Viewers also liked (8)

PDF
NTT研究所におけるYammerの取り組みと、社内Twitterの統計解析
PPTX
HTML5最新動向
PDF
HTML5とはなにか?マイクロソフトはHTML5をどう考えているのか?
PDF
I phoneアプリの通信エラー処理
PDF
ソーシャルゲームにおけるMongoDB適用事例 - Animal Land
PPTX
Metro#1
PDF
Process Framework「CYCLONE for Mobile Apps」(20120118)
PDF
Amazon ElastiCache - AWSマイスターシリーズ
NTT研究所におけるYammerの取り組みと、社内Twitterの統計解析
HTML5最新動向
HTML5とはなにか?マイクロソフトはHTML5をどう考えているのか?
I phoneアプリの通信エラー処理
ソーシャルゲームにおけるMongoDB適用事例 - Animal Land
Metro#1
Process Framework「CYCLONE for Mobile Apps」(20120118)
Amazon ElastiCache - AWSマイスターシリーズ

Similar to Web Intents入門 (20)

PDF
WebIntents × SNS
PPTX
WebIntentsにより拓かれる次のWeb
PDF
ゆるべん Webアプリ開発概要 20130127
 
PPTX
6th oct2012 kobeit_webintents
KEY
BEAR.Sunday Note
PPT
Lesson01
 
PDF
50分で掴み取る ASP.NET Web API パターン&テクニック
PDF
たかがAPI,されどAPI、シナジーで広がるビジネスチャンス
PPTX
勉強会資料①
PPTX
A 2-1 gitwebmatrix 2 から使う node.js on windows azure
PDF
Webとは何か
PDF
Beginning Java EE 6 勉強会(7) #bje_study
PPT
単機能Twitter クライアント試作のための各種方法の検討
PPTX
ブラウザからWeb OSへ〜Web - TV連携事例からその可能性を探る〜
PPTX
Challenge PWA!! TRY PWA4WP!
PDF
Mobile Web
PPTX
WordPressサイトをスマホアプリにしちゃおう!
PDF
アプリ開発の
PDF
リアルFacebookガジェットを作った(ロングバージョン)
PDF
Webフロントエンド開発の最新トレンド - HTML5, モバイル, オフライン
WebIntents × SNS
WebIntentsにより拓かれる次のWeb
ゆるべん Webアプリ開発概要 20130127
 
6th oct2012 kobeit_webintents
BEAR.Sunday Note
Lesson01
 
50分で掴み取る ASP.NET Web API パターン&テクニック
たかがAPI,されどAPI、シナジーで広がるビジネスチャンス
勉強会資料①
A 2-1 gitwebmatrix 2 から使う node.js on windows azure
Webとは何か
Beginning Java EE 6 勉強会(7) #bje_study
単機能Twitter クライアント試作のための各種方法の検討
ブラウザからWeb OSへ〜Web - TV連携事例からその可能性を探る〜
Challenge PWA!! TRY PWA4WP!
Mobile Web
WordPressサイトをスマホアプリにしちゃおう!
アプリ開発の
リアルFacebookガジェットを作った(ロングバージョン)
Webフロントエンド開発の最新トレンド - HTML5, モバイル, オフライン

More from Shumpei Shiraishi (20)

PDF
俺的GEB概論(前半)
PPTX
コンセプトのつくりかた - アイデアをかたちにする技術
PPTX
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
PPTX
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
PPTX
JavaScript使いのためのTypeScript実践入門
PPTX
「それでも人生にイエスと言う」を読んで
PPTX
「それでも人生にイエスと言う」を読んで
PPTX
Angular2実践入門
PDF
WebRTCがビデオ会議市場に与えるインパクトを探る
PDF
変身×フランツ・カフカ
PPTX
イラスト日用服飾辞典/三面記事の歴史/健康男 を読んで
PPTX
「1秒でわかる!アパレル業界ハンドブック」を読んで
PPTX
漫☆画太郎論
PPTX
HTML5時代のフロントエンド開発入門
PPTX
6,000人のWeb技術者コミュニティを5年間やってみて学んだこと
PPTX
はじめにことばありき
PPTX
秒速一億円
PPTX
HTML5がもたらすアプリ開発へのインパクト
PPTX
この人と結婚していいの?を読んで
PPT
20130921レジュメ2
俺的GEB概論(前半)
コンセプトのつくりかた - アイデアをかたちにする技術
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
JavaScript使いのためのTypeScript実践入門
「それでも人生にイエスと言う」を読んで
「それでも人生にイエスと言う」を読んで
Angular2実践入門
WebRTCがビデオ会議市場に与えるインパクトを探る
変身×フランツ・カフカ
イラスト日用服飾辞典/三面記事の歴史/健康男 を読んで
「1秒でわかる!アパレル業界ハンドブック」を読んで
漫☆画太郎論
HTML5時代のフロントエンド開発入門
6,000人のWeb技術者コミュニティを5年間やってみて学んだこと
はじめにことばありき
秒速一億円
HTML5がもたらすアプリ開発へのインパクト
この人と結婚していいの?を読んで
20130921レジュメ2

Web Intents入門

  • 1. Web Intents入 門 白石俊平 @Shumpei
  • 2. 自己紹介  株式会社オープンウェブ・テクノロジー代表  今年からシーエー・モバイル株式会社 Web先 端技術 フェローに就任しました。  HTML5とか勉強会主催、html5j.org管理人  Google API Expert (HTML5)  Microsoft Most Valuable Professional 2011 (IE)  Twitter ID: @Shumpei
  • 3. アジェンダ  Web Intentsとは何か?  Web Intentsをプログラムから利用する  Web IntentsはWebをどう変えるか?
  • 5. Web Intentsとは何か?  Androidの「インテント」をWebアプリどう しで実現する仕組み  2011年6月にGoogleがアイデアを公開し、 現在はW3Cで標準化作業中(仕様書) App1 App Platform App App2
  • 6. インテントの登場人物は三種類。  クライアント・・・インテントの呼び出し 元となるアプリケーション  UA・・・Web Intentsを管理するプラット フォーム。通常はWebブラウザ  サービス・・・インテントを処理するWeb アプリ クライア UA サービス ント
  • 7. サービスの登録  ユーザがサービスのWebページにアクセスする。Webアプリ2の <head>内には、<intent>要素が含まれている • ブラウザは、このWebサービスをインテント処理可能なアプリケー ションとして登録する
  • 8. サービスの登録UI Grenn Jonesさんのブログより引用
  • 9. サービスの管理UI Grenn Jonesさんのブログより引用
  • 10. インテント処理の流れ  ユーザがWebアプリ(クライアント)上で、インテントを要求するような操作を行う  クライアントは、ブラウザに対してインテントの処理を要求する • ブラウザは、登録済みのWebアプリ(サービス)の中からインテン トを処理できるアプリの一覧を表示する • ユーザはサービスを選択する • ブラウザはそのサービスを起動し、インテントを渡す • サービスは、渡されたインテントを元に処理を行い、結果を返す • ブラウザは、処理結果をクライアントに戻す • クライアントに処理が戻る
  • 11. サービスの選択UI Grenn Jonesさんのブログより引用
  • 13. 説明にあたっての前提  以下は、「Web Intents - W3C Editor's Draft 04 January 2012」を元 に解説します。  今後も仕様は変更される可能性が高いです。  また、webintents.orgで配布されているJavaScript shimを使って、 デモの動作検証を行なっています。  JavaScript shimは、Web Intentsを使用したいページに以下の <script>要素を含めることで利用できます。 <script src="//webintents.org/webintents.js"></script>
  • 14. サービスの登録  <intent>要素を含むWebアプリにアクセスす ると、ブラウザはそのアプリケーションを 「インテント処理可能なアプリ」として登 録する  <intent>は複数指定可能 <intent action="インテントのアクション(URL形式)" type="処理可能なコンテントタイプ" href="アプリケーションのURI" title="アプリケーションのタイトル" disposition="アプリケーションの開き方(window|inline)" />
  • 15. インテントのアクション  URL形式の文字列で指定。この文字列を キーとしてアプリが登録される  以下のようなアクションがデフォルトで利 用可能 http://webintents.org/discover 登録されたAPI/サービスを検索 http://webintents.org/share データの共有 http://webintents.org/edit データの編集 http://webintents.org/view データの閲覧 http://webintents.org/pick ファイルを外部サービスから取得 http://webintents.org/subscribe データの購読 http://webintents.org/save データの保存
  • 16. <intent>要素の使用例 テキストデータの編集を行えるアプリケーション <intent action="http://webintents.org/edit" type="text/*" href="editor.html" title="マイエディタ" disposition="window" /> 短縮URL生成サービス(独自のアクションを定義) <intent action="http://example.com/shorten" type="text/uri-list" href="shorten.html" title="Goo.gl URL Shorter" disposition="inline" />
  • 17. インテント処理の呼び出し // Intentオブジェクトの生成 var intent = new Intent( "http://webintents.org/edit", // アクション "text/plain", // コンテントタイプ "data" // データ ); // action/type/dataと言ったプロパティを持つ console.log("action:" + intent.action); console.log("type:" + intent.type); console.log("data:" + intent.data); // インテント処理の呼び出し navigator.startActivity(intent, onSuccess, onFailure)
  • 18. インテントデータの処理 // Intentオブジェクトの生成 var intent = window.intent; var data = intent.data; …渡されたデータを処理… // 結果を呼び出し元に返す intent.postResult(result);
  • 20. Webサービス間連携をよりス ムーズに  「Tweet」ボタンや「いいね!」ボタンが消える
  • 21. Webサービス間連携をよりス ムーズに  ファイルの処理方法を自由に選べる  →ひいては、個々のWebアプリの単機能化が促進されるだろう
  • 22. Webサービス間連携をよりス ムーズに  一度でもアクセスされたWebアプリが「忘れられる」ことが減るので は?  少なくとも、そう考える事業者が多くなれば、Web Intentsは圧倒的な 速度で広まると思える。  その他、様々なユースケースが考えられる  認証  課金処理
  • 23. ローカルとクラウドの境界を 超えて  例:コンタクト情報の取得を、ローカル/クラウドのアドレス帳から 行う  例:画像編集ソフトにおいて、編集対象の画像を、ローカル/クラウ ドのギャラリーから取得する App2 App1 UA App2
  • 24. ホームネットワークでの応用 も検討中  例:スマホで遭遇したYoutubeコンテンツをTVで視聴・操作  例:HDDレコーダー内の動画をタブレットで視聴
  • 25. ホームネットワーク+Web Intentsの検討課題  「UAにデバイス(サービス)をどう登録するか」と、「Webアプリ⇔ デバイス間の通信処理をどう実現するか」が主な論点  デバイスのディスカバリを、誰がどこまで行うか?  デバイスとの永続的な通信の確立方法  現在のWeb Intentsは、一回限りのRPCモデル  MessagePortを使用して、永続的な接続を確立しては?  デバイスとの通信プロトコルを処理するのはUA?アプリケーショ ン?
  • 27. まとめ  Web Intentsは、Webアプリ間でインテント を実現するだけでなく、Webアプリとネイ ティブアプリの境界や、デバイスの境界を またいだサービス連携を実現する!  ホームネットワークでも存在感を発揮する はず  Webサービスのあり方が大きく変わる可能 性も?  これからもWeb Intentsに刮目せよ!
  • 28. 参考文献  webintents.org  Web Intentsを試すことの出来るJavaScript shimを利用できる。手軽 にWeb Intentsを知りたければ、このサイトを参照すべし。  Web IntentsタスクフォースのWiki  Web Intentsに関する情報のポータルと言っても良い。Web Intentsに ついて多少詳しく知りたければこちら。  Web Intentsとホームネットワークについてのページは参考になる。  W3Cのメーリングリスト。最新動向を知るならこちら。  Web Intents (Editor's Draft)  参照可能なドラフト仕様。  Web Intentsに深く関わっている、Glenn Jonesさんのブログポスト
  • 29. 参考リンク  Chromium BlogでもWeb Intentsに言及  Networked Service Discovery and Messaging  サービスディスカバリや通信に関する、Operaによる非公式の仕様  Requirements for Home Networking Scenarios  ホームネットワークにおける要件をまとめたW3Cのレポート  Web Intentsに関する、スタッフ小松さんのブログポスト。貴重な日本語情報  Activity Streams  インテントのアクションやデータ形式をここから参照しようか、という話はよく見受 けられる  Web Introducer・・・関連はありそうだが、おそらくもうアップデートされなそうな W3C仕様  TwitterのWeb Intents・・・直接の関連はないが、UXの参考によく挙げられる