Webインテントを介したWebアプリケーション間の相互作用

注:通常、翻訳は行いませんが、ニュースは面白くなりました。



今日のブラウザエコシステムでは、Webアプリケーションは互いに完全に分離されており、たとえば、Webサイトからサードパーティのサービスを介してTwitterにコメントを送信するには、複雑なものを使用する必要があります( 注:私は単に「多様」と言います ) 。 しかし、どの特定のサービスを使用するかを知らずに、そのようなサービスを使用する機会をサイトに与えることができても、それが何らかの機能を提供することを知っている場合はどうでしょう。



Android OSでは、この問題は、1つ以上の異なるアプリケーションのコンポーネントが相互作用できるアーキテクチャであるIntents [1]を使用して解決されます。 このスキームに従って、クライアントアプリケーションは要求を作成し(たとえば、何かを送信する)、別のサービスアプリケーションに転送されるパラメーターを設定します。 その後、このタイプのインテント要求を処理する能力を登録したアプリケーションのリストがユーザーに表示されます。 次に、ユーザーが選択したアプリケーションが新しいコンテキストで起動され、特定の種類のインテント用に事前定義された特定の形式でクライアントから渡されたパラメーターがそれに渡されます。



現時点では、SheB: Web Intents用の同様のシステムを作成するために多大な努力を払っています。 このシステムは、Intents for Androidと同じ機能を提供しますが、Webアプリケーションに適合します。





シンプルで使いやすいAPIを開発することが、私たちの主で最も重要な仕事だと考えています。 Web Intentsを使用すると、2行のコードだけでWebアプリケーションを必要なサービスに接続できます! 残りの作業はChomeが行います。



Androidと同様に、Webインテントは、現代のサイトのほとんどのニーズを満たす必要のある基本的なアクション(編集、ブラウジングなど)をカバーします。 ただし、World Wide Webの成長に伴い、サイトはますます多くの機能を提供します。 そして、彼らには新しいタイプのインテントを作成する機会が与えられ、彼ら自身がそれを公開して文書化することができます。 また、既存のインテントと新しいインテントを表示できる特別なサイトを作成する予定です。



例として、写真ホスティングをホストしているサイトを考えてみましょう。開発者はオンライン画像エディターをサイトに追加する余裕はありませんが、この機能がないとサービスが普及しないことを理解しています。 Web Intentを使用すると、最小限の労力で必要なものを取得できます。



var intent = new Intent(Intent.EDIT, 'image/png', getImageDataURI()); window.navigator.startActivity(intent, loadEditedImage); // This callback will be called when the service replies with the edited // image data. function loadEditedImage(data) { var image = document.getElementById('image'); setImageData(image, data); }
      
      







たとえば、ユーザーがアクセスするミームジェネレーター(注:必要に応じて、または動機付け)などのサイトでは、次の宣言を使用して、タイプイメージ/ *のファイルのタイプEDIT(編集)の意図を処理する機能を宣言できます。



 <intent action="http://webintents.org/edit" type="image/*" />
      
      







ユーザーが画像を編集する必要がある場合、このサービスは他の登録済み画像エディターとともにユーザーに提供されます。 また、ユーザーが新しいコンテキストでミームジェネレーターを選択すると、対応するサイトが開き、次の方法でインテントからデータを受信できます。



 var intent = window.intent; memeImg.src = intent.data; memegenForm.onsubmit = function() { // Transform the image - meme it. addMemeTaglines(memeImg, memeTopText, memeBottomText); // Send the generated meme back to the client. intent.postResult(getImageData(memeImg)); };
      
      







postResult()を呼び出した後、ミームジェネレーター用に作成されたコンテキストが閉じられ、startActivity()に渡されるコールバックを介して受信データがアプリケーションに渡されます。 (注:この例では、loadEditedImage)



Mozillaの人たちもこの方向で働いています 。 さらに、エンジニアと密接に連携して、シンプルで便利な単一のAPIを作成します。



例のあるページの最新のブラウザで新しい機会を試してみることをお勧めします。 サイトでIntents APIを試してみたい人は、この機能をサポートしていないブラウザにこのパッチを使用できます。



この機能のプロトタイプはすぐに作成されますので、Chromeのフラグの後ろでWeb Intentが利用可能になる時期をお知らせするため、すぐに確認してください。 私たちはプロトタイプに集中的に取り組んでいるので、まもなくWeb IntentsがChomeのオプションになるときの発表を待ってください!



- [1]-意図-文字通り「意図」。 この用語を翻訳するのに最適な方法をコメントに書いてください...翻訳する必要がある場合



All Articles