当ブログは移行しました。

http://www.symmetric.co.jp/blogに移行しました。
5秒後に自動的に移動します。
移動しない場合はこちらをクリックしてください。

携帯サイト制作のヒント:PI機能で表示コントロール

ラウンドアバウトの機能の1つに、アクセスした機種の属性に応じて、コンテンツ内の表示の一部を切り替える機能(PI)があります。出し分けたい内容をHTML上に記述すれば、条件にマッチする機種にのみ表示させることが可能です。

PIとはProcessing Instructionの略記で、XML文書中に特定のソフトウェアへの命令を埋め込む、処理命令のための記述です。<?ターゲット 処理内容?>で表され、PHPではこのPIが使われています。ラウンドアバウトの表示コントロール機能はこのPIを利用しているので、表示コントロール機能のことを「PI機能」と呼んでいます。

PI機能の利用シーンの一部
  • 待受画面幅・高さに応じた配布する待受画像ファイルを切り替える
  • 対応アプリの種類やバージョンに応じて配布アプリを切り替える
  • Flash Liteバージョンに応じてFlashコンテンツの表示をコントロールする
  • GPS対応状況とキャリアに応じて位置情報送信用のコードを出し分ける
などなど。


基本の書き方
  • <?ra 条件式 ?>表示したい文字列

条件式を満たしたとき、表示したい文字列(1行)が残ります。条件式を満たさない場合、PI記述と表示したい文字列(行末まで)が削除されます。

PIから表示コントロールされる文字列までを1行で書き切るのがルールです。入れ子を許さず複雑な記述を排除して、簡単で間違えのないシンプル指向の記述方法を採っています。

なお、条件式の種類については「開発リファレンス」でさらに詳しく解説されているのでそちらに譲ります(デベロッパーコネクションにて公開中)。

例①
キャッシュサイズが20KB以下の機種に非対応メッセージを表示する
<?ra cache-size="1-20480" ?>申し訳ございませんが、ご利用の機種は非対応となっております。

例②
GPS対応している機種にのみ位置情報送信リンクを表示する。さらに、キャリア別にリンクの記述を変える
<?ra carrier="DoCoMo" gps-support="1" ?><a href="送り先URL" lcs>今いる場所を知らせる</a>
<?ra carrier="au" gps-support="1"?><a href="device:gpsone?url=送り先URL&ver=1&datum=0&unit=1">今いる場所を知らせる</a>
<?ra carrier="SoftBank" gps-support="1"?><a href="location:auto?url=送り先URL">今いる場所を知らせる</a>

機種の属性はラウンドアバウトが提供する端末情報を利用します。静的なHTMLの中に書くことができ、PHPなどのアプリケーションも要りません。サイト制作の現場で必要なときにその場でPI機能を使うことができます。

機種のスペックを条件に書けるというところもポイントです。携帯の全機種情報を持たない環境では、ユーザーエージェントの一部からキャリアや世代を判別します。この方法はどのキャリアや世代がその機能に対応しているのかを調べないといけません。先ほどの例①を実現するために必要な作業を考えてみると
  • 各キャリアの資料や携帯サイト開発の技術情報などでキャッシュサイズを調べる
  • サービス終了した世代に関する情報などを考慮した末、ドコモのmovaとソフトバンクのC型・P型を非対応とする
  • これらの機種はどんなユーザーエージェントの記述パターンなのか調べる
  • アプリケーションコードで機種判別するコードを書く
といった具合です。また、新機種に対する動作保証がないので今後ことあるごとにメンテナンスする必要があり、サイト開発者は機種判別のためのコードから離れることができず、楽になりません。

ラウンドアバウトは全機種情報を持ち、機種属性の情報が使って書くことができるので、将来の動作にも不安のない表示コントロールができます。小さい労力ですばやい対応ができるラウンドアバウトのPI機能にアドバンテージがあることがお分かりいただけるかと思います。

0 コメント:

コメントを投稿