iアプリ to ibisBrowser
■概要
iアプリからibisBrowserDXを起動し、指定のURLを開きます。
ibisとは異なるドメインから取得したiアプリからでも、ibisBrowserDXを起動することができます。
■ 処理の流れ
呼び出し元iアプリは、ibisBrowserサーバへURL及び端末情報を送信します。
ただし、iアプリからibisBrowserサーバへ直接通信を行うことができないため、iアプリ配布元サーバを経由する必要があります。
(1)呼び出し元iアプリは、iアプリ配布元サーバへURLを送信します。
(2)iアプリ配布元サーバは、URLをibisBrowserサーバへ送信します。
(3)ibisBrowserサーバは、指定されたURLをDBに登録します。
ibisBrowserサーバは、処理結果を配布元サーバに経由して、iアプリへ返します。
(4)処理結果がOKの場合は、ランチャーモードによるiアプリ連携起動によりibisBrowserDXを起動します。
※通常の連携モードによるiアプリ連携起動では、ibisBrowserDXを起動することはできません。
(5) ibisBrowserDXは初回起動時に、指定されたURLのサイトを表示します。
各アプリ間の関連図を以下に示します。

アプリ間関連図
■ 処理詳細
iアプリ
iアプリは、FOMAカード個体識別子とURLを配布元サーバに送信します。
通信時のフォーマットは独自ルールでかまいませんが
FOMAカード個体識別子は「Phone.getProperty(Phone.USER_ID)」で取得できる20桁のIDである必要があります。
配布元サーバ
iアプリから取得したIDとURLを、httpを使用してibisBrowserサーバへリクエストします。
リクエストURLは以下となります。
http://ibis.ne.jp/br/request
同時に引き渡しパラメータを設定します。 送信メソッドは、「GET」「POST」どちらも可能です。
引き渡すパラメータには以下の項目があり、全て必須となります。
| mode |
固定値:1(URLの登録を行うためのリクエストであることを表します) |
| url |
iアプリから取得したURL |
| id |
iアプリから取得したFOMAカード個体識別子 |
ibisBrowserサーバ
受け取ったパラメータを元に登録処理を実行し、処理結果を配布元サーバへ返却します。
処理結果はプレーンなテキストで返却されます。
処理結果には以下の2通りがあります。
| OK |
処理が正常終了した場合に返却されます。 |
| NG,… |
処理が異常終了した場合に返却されます。
","以降は、エラーメッセージを示す文字列がEOFになるまで続きます。
文字コードは「MS932」です。 |
配布元サーバ
ibisBrowserサーバから、処理結果を受け取ります。
受け取った処理結果をiアプリに返却します。
必要であればエラーメッセージも同時に返却します。
iアプリ
配布元サーバから受け取った処理結果がOKであれば、「ランチャーモードによりiアプリ連携起動」によりibisBrowserDXを起動します。
iアプリ上からは、ibisBrowserDXがインストールされているかどうかの判定はできません。
そのため、ibisBrowserDXを起動するか、新規インストールするかの選択はユーザが行うこととなります。
※ランチャーモードでiアプリ連携起動を行う場合は、ADFのLaunchAPPキーでiアプリ連携起動を行うことを宣言(値:yes)する必要があります。
-ibisBrowserDXを起動する場合−
ランチャーモードによるiアプリ連携起動を行う場合、開発者は以下の2つの処理を起動元iアプリに実装する必要があります。
| ibisBrowserDXのエントリID取得 |
ランチャーモードでiアプリを起動するには、その携帯電話にインストールされている各iアプリと1対1に対応付けられているエントリIDを使用します。
有効なエントリIDを得るためには、ユーザによるiアプリ選択プロセスを経る必要があります。
iアプリ選択プロセスは、com.nttdocomo.system.ApplicationStoreクラスを使用します。
このクラスのstaticメソッドselectEntry()を呼び出すことで、iアプリはサスペンドして画面上にiアプリ一覧が表示されます。
そのiアプリ一覧からユーザがいずれかのiアプリを選択するとiアプリはレジュームし、selectEntry()メソッドは選択されたiアプリに対応するApplicationStoreオブジェクトを返します。
返却されたApplicationStoreオブジェクトに対してgetId()メソッドを呼び出すことで、選択されたiアプリのエントリIDを取得することができます。
※ここで選択できるiアプリは、ibisBrowserDXだけでなく、任意のiアプリを起動できます。
そのため、ibisBrowserDXの起動を促すなどの必要があります。
|
| エントリIDを指定してのibisBrowserDXの起動 |
エントリIDを指定してランチャーモードでiアプリを起動するには、IApplication.launch()メソッドを使用します。
引数には以下の項目を設定します。
| 第1引数 |
起動対象となるアプリケーションの種別です。
「IApplication.LAUNCH_AS_LAUNCHER」を設定します。
|
| 第2引数 |
起動引数を示すString配列です。
先頭要素に文字列化したエントリIDを指定します。
|
|
-ibisBrowserDXが端末にインストールされていなかった場合−
iアプリ側で処理を打ち切ることもできますが、iモードブラウザ起動によりibisBrowserDXダウンロードページへ遷移することもできます。
iモードブラウザの起動には、以下のメソッドを使用します。
IApplication#launch(int target, String[] args)
「target」には、「IApplication.LAUNCH_BROWSER」を指定します。
「args」には、ibisBrowserDXダウンロードページを示すURLを設定します。
URLは以下となります。
http://ibis.ne.jp/br/request
同時に引き渡しパラメータを設定します。
引き渡しパラメータには以下の項目があり、全て必須となります。
| mode |
固定値:2(登録済みのURLを取得するためのリクエストであることを表します) |
| id |
FOMAカード個体識別子 |
| z |
通常は固定値:0(アフィリエイト登録済みの場合は、アフィリエイトIDを指定します) |
iモードブラウザ起動後は、画面の指示に従っていくことでibisBrowserDXをダウンロードできます。
ibisBrowserDX
初回起動時、iアプリにより設定されたURLを開きます。
■サンプル
iアプリto ibisBrowserのサンプルソースを以下に示します。