• 検索結果がありません。

第 9 章 待ち受けアプリケーション

11.1 ブラウザ連携起動

Copyright Ⓒ 2008-2012 NTT DOCOMO, Inc. All Rights Reserved.

(*3) スケジュール管理機能の呼び出しのうち、iアプリからのスケジューラの起動についてはDoJa-4.1プロファイルまで はiアプリオプションAPIの位置づけです。この機能は、DoJa-5.0プロファイルにてiアプリ基本APIの位置づけに 変更されました。

本章では、アプリケーション連携機能の利用方法、および各種制限事項などについて解説します。

Copyright Ⓒ 2008-2012 NTT DOCOMO, Inc. All Rights Reserved.

● OBJECTタグ

OBJECTタグは、iアプリに対応するADFを特定するために使用されます。OBJECTタグのid属性には、A タグのista属性で参照される名前(HTML内で一意)を指定します。またdata属性にはADFの位置を示 すURLを指定します。携帯電話はiアプリをダウンロードした際に、そのiアプリに対応するADFのURL を記憶しています。ブラウザからのiアプリ起動では、data属性に指定されたURLと同じADFを参照して いるiアプリが起動対象となります。type属性にはdata属性で示されたデータ(この場合ADF)のコンテ ンツタイプを指定します。ADFのコンテンツタイプは"application/x-jam"です。

OBJECTタグの内部には、下記に示すPARAMタグを記述することができます。

● PARAMタグ

PARAMタグは、ブラウザからのiアプリ起動時に、IApplication.getParameter ()メソッドにより取得 できるパラメータを指定するために使用されます。

PARAMタグは、OBJECTタグ中に最大16個含めることができます。また、1つのOBJECTタグ中に指定され た全PARAMタグのname属性の値の長さとvalue属性の値の長さの合計は最大255バイトに制限されます。

name属性の値およびvalue属性の値には、それぞれSJISで日本語テキストを指定することができます。

以下に、携帯電話にダウンロードされているiアプリと、iアプリ起動用 HTML の内容の関係に ついて図示します。

図 15: ダウンロード済みiアプリとiアプリ起動用 HTML の記述内容との関係 iアプリA

ADF:

http://www.nttdocomo.co.jp/a.jam LaunchByBrowser:

http://www.nttdocomo.co.jp

iアプリB ADF:

http://www.nttdocomo.co.jp/b.jam LaunchByBrowser:

http://www.nttdocomo.com

<OBJECT declare id=”application.a”

data=” http://www.nttdocomo.co.jp/a.jam”

type=”application/x-jam”> </OBJECT>

<A ista=”application.a” href=”error.html”>

iアプリAの実行

</A><P>

<OBJECT declare id=”application.b”

data=” http://www.nttdocomo.co.jp/b.jam”

type=”application/x-jam”> </OBJECT>

<A ista=”application.b” href=”error.html”>

iアプリBの実行

</A><P>

<OBJECT declare id=”application.c”

data=” http://www.nttdocomo.co.jp/c.jam”

type=”application/x-jam”> </OBJECT>

<A ista=”application.c” href=”error.html”>

iアプリCの実行

</A><P>

① 指定されたADFを使用してダウンロードされたiアプリが携帯電話上に存在し、かつiアプリ起動用HTML

URLLaunchByBrowserキーの値に前方一致するため、iアプリAはユーザーの許可が得られれば起動

可能。

② 指定されたADFを使用してダウンロードされたiアプリが携帯電話上に存在するが、iアプリ起動用HTML

URLLaunchByBrowserキーの値に前方一致しないため、iアプリBは起動不可能。

③ 指定されたADFを使用してダウンロードされたiアプリが携帯電話上に存在しないため、iアプリCは起動 不可能。

ブラウザでアクセスしたiアプリ起動用HTML の記述内容(http://www.nttdocomo.co.jp/appexec.html)

携帯電話にインストール されたiアプリ

Copyright Ⓒ 2008-2012 NTT DOCOMO, Inc. All Rights Reserved.

注意事項:

● 携帯電話ユーザーは、携帯電話の設定によりブラウザからのiアプリ起動を禁止することができます。また ブラウザからiアプリを起動する前に、iアプリ実行環境はユーザーにiアプリを起動してよいか確認を行 います。これらの機構によりユーザーの許可が得られなかった場合、そのiアプリの起動は行われません。

● ブラウザから起動されたiアプリの動作が終了(IApplication.terminate()により終了)すると、iア プリを起動する前のブラウザの状態に復帰します。ただし、ブラウザから起動されたiアプリをユーザーが 強制終了した場合、およびブラウザから起動されたiアプリがアプリケーション連携機能によって他のネイ ティブアプリケーションの機能の起動または呼び出しを行った場合はiアプリ終了後にどのような状態に移 るかはメーカーにより異なります。

【DoJa-5.0】

DoJa-5.0プロファイル以降、トルカのバージョン2.0フォーマットに対応している携帯電話では、トルカ(詳

細)のHTMLコンテンツ部分に本項で解説したタグを記述することで、トルカビューアからiアプリを起動す ることもできます。この場合、トルカ(詳細)のHTMLコンテンツ部分に記述するOBJECTタグ data属性 に記載するADF URLには相対URLは指定しないようにしてください。

トルカビューアからのiアプリ起動を許可するには、そのiアプリのADFに、LaunchByBrowserキーの代 わりにLaunchByToruCaキーを指定します。各々のトルカデータにはトルカ(詳細)を取得するためのURL が対応付けられていますが、トルカ(詳細)の取得先URLにLaunchByToruCaキーの値が前方一致する場 合は、そのトルカから該当のiアプリを起動することができます。

なお、ブラウザからiアプリを起動した際のiアプリの起動種別(IApplication.getLaunchType()メソ ッドで取得する起動種別)がIApplication.LAUNCHED_FROM_BROWSERとなるのに対し、トルカビューア からiアプリを起動した際のiアプリの起動種別はIApplication.LAUNCHED_FROM_TORUCAとなります。

【DoJa-5.1】(906iシリーズ以降)

iアプリ連携起動用のAタグに、ista属性に加えijam属性も指定した場合は、iアプリを連携起動しよう とした際にそのiアプリが更新されていることが検出されるとiアプリの更新処理が行われます。そのような 状況において、iアプリの更新処理に引き続いて起動されたiアプリは、906iシリーズ以降では起動種別は IApplication.LAUNCHED_FROM_BROWSER(ブラウザからの起動の場合)もしくは

IApplication.LAUNCHED_FROM_TORUCA(トルカビューアからの起動の場合)となります。しかしそれよ り以前の機種では、更新処理に引き続いて起動されたiアプリの起動種別はメーカーにより異なります。

なおista属性とijam属性が併記されていても、携帯電話上に対象のiアプリが存在しない場合には、iア プリのダウンロード処理に引き続いて起動されたiアプリの起動種別は

IApplication.LAUNCHED_AFTER_DOWNLOADとなります。

11.1.2 iアプリからのブラウザ起動

iアプリからブラウザを起動するには、IApplication.launch()メソッドを使用します。ブラ ウザを起動するには、このメソッドの第 1 引数(起動対象となるアプリケーションの種別)に IApplication.LAUNCH_BROWSER を、また第 2 引数(起動引数を示す String 配列)の先頭要 素に接続先の URL (http スキームまたは https スキームをサポート)を設定します。 URL は最長 255 バイトまで指定できます。

なおブラウザを起動するiアプリは、 ADF の UseBrowser キーでブラウザ起動を行うことを宣言

(値”launch”を設定)する必要があります。この宣言を行っていないiアプリはブラウザを起動 することはできません。

IApplication.launch()メソッドを呼び出すと、iアプリはサスペンド状態に入ります。その

後、以下の 2 点を満たすことでブラウザが起動されます。

Copyright Ⓒ 2008-2012 NTT DOCOMO, Inc. All Rights Reserved.

・ パケット通信が可能であること(圏外など、パケット通信ができない状態でないこと)。

・ ブラウザ起動前、iアプリ実行環境がユーザーに求める起動確認に対しユーザーが同意すること。

いずれかを満たしていない場合、iアプリはレジュームし、IApplication.launch()メソッド は例外をスローすることなく呼び出し元に復帰します。また、両方の条件を満たしてブラウザが起 動される際、iアプリは終了します。

【DoJa-5.0】

DoJa-5.0プロファイル以降では、iアプリからブラウザを起動する際にiアプリを終了させず、サスペンド状

態を継続することを指示するためのAPIが用意されています。ただしこの機能はオプショナルであり、メーカ ーによってはサポートされない場合があります。

この機能を使用するには上記の手順において、launch()メソッドの第1引数に、

IApplication.LAUNCH_BROWSERの代わりにIApplication.LAUNCH_BROWSER_SUSPENDを指定します。

この方法でブラウザを起動した場合はブラウザ起動後もiアプリはサスペンド状態を保っており、ブラウザ終 了時にレジューム復帰します。

注意事項:

● DoJa-4.0プロファイル以前のiアプリ実行環境では、待ち受けアプリケーションが待ち受け起動されている

場合、どのような状態であってもMApplication.launch()メソッドを使用してブラウザを起動すること はできません。待ち受け起動された待ち受けアプリケーションがブラウザを起動しようとすると例外が発生 します。

これに対しDoJa-4.1プロファイル以降のiアプリ実行環境では、待ち受け起動された待ち受けアプリケーシ ョンであっても、活性化状態であればMApplication.launch()メソッドによるブラウザ起動を行うこと ができます。

● iアプリから起動されたブラウザがユーザー操作により終了すると、待ち受け状態に復帰します。

● HttpConnectionを使用したHTTP通信時と異なり、iアプリからのブラウザ起動では、iアプリダウン ロード元サイト以外のサイトにアクセスすることができます。ただしリクエストメソッドはGETに限定され、

iアプリ実行環境によるユーザーへのブラウザ起動確認時にURLの内容がユーザーに提示されます。