連載 .NETでモバイル・サイト開発を始めよう 第2回 携帯サイトの「ドコモ、au、SoftBank」への対応 シグマコンサルティング 菅原 英治2007/04/13 |
|
前回は、ASP.NETによる携帯サイト(=モバイルWebサイト)開発の現状を示し、現実的な開発方法の一手段としてASP.NETのデバイス・フィルタ機能を使ったデバイスの識別方法を説明した。今回もこれに引き続き、デバイス別の対応を行う方法として、デバイス・フィルタとカスタム・コントロールの組み合わせ方(絵文字コントロールの作成)や、デバイス・アダプタの活用方法について紹介する。
■3. デバイス別の対応を行うには
まずは前回説明したデバイス・フィルタを活用して携帯デバイスの種類(ドコモ、au、SoftBank)を識別し、それぞれのデバイス向けに適切な絵文字( など)を出力する簡単なサンプル・プログラムを作成してみる。絵文字の出力は、カスタム・コントロールによって行う。従ってここでは、カスタム・コントロールの利用方法を解説する。
なお以降では、前回作成したサンプル・プログラムを拡張していく。
●3.1. カスタム・コントロールについて
詳しい利用方法の解説に入る前に、「絵文字を表示するのに、なぜカスタム・コントロールを利用する必要があるか」について説明しておきたい。
○3.1.1. カスタム・コントロールを利用する理由
一般的に、モバイル・サイトを構築するうえで、下記の項目は非常によく挙がる要件だろう。
- 画面を絵文字で装飾する(auでは<img>タグのlocalsrc属性で指定する)
- テキストボックスに入力モードを設定する(ドコモのistyle属性、auのformat属性、SoftBankのmode属性*1など)
*1 SoftBankのmode属性の定義表は、HTML編(PDF)の177ページにある。 |
既存のモバイル・コントロールでこれらの要件を実現するのは、実は意外と難しい。なぜならばモバイル・コントロールでは、通常のWebコントロールのようにAttributesプロパティが存在しないため、任意の属性を追加することができないからだ。例えばモバイルWebフォーム用のImageコントロールでは、下記のコードのようにAttributesプロパティを利用してlocalsrc属性を追加することはできない。
|
|
mobile:ImageコントロールのImage1にlocalsrc属性の追加を試みたコード |
カスタム・コントロールを利用すれば、この課題を解決できる。カスタム・コントロールでは、任意のテキスト(HTMLコード)をレンダリングすることが可能だからだ。これがカスタム・コントロールを利用する理由である。
○3.1.2. カスタム・コントロール「絵文字コントロール」の作成
それでは、カスタム・コントロールを作成してみよう。ここで作成する「絵文字コントロール」の仕様を以下にまとめる。
【絵文字コントロールの仕様】
- ドコモ、au、SoftBankのキャリア種別の情報を持つ
- キャリア種別ごとに、適切な「晴れ」絵文字をレンダリングする
- ただし、コントロール自身はキャリアの種別の判断は行わない
まず、カスタム・コントロールを定義・実装するためのクラスを追加する。2.3.5で追加したクラス・ライブラリのプロジェクト「Mlib」に対し、「Web カスタム コントロール」を追加する。
カスタム・コントロールを定義・実装するためのクラスの追加 | ||||||
|
ファイルを追加したら、下記のコードに書き換えよう。ここで定義・実装しているカスタム・コントロールの「晴れ」絵文字クラスが、モバイル・コントロールのLabelクラス(System.Web.UI.MobileControls名前空間)を継承している点に、特に注意してほしい(※項目テンプレートで自動生成されたひな型を書き換えている)。
|
|
絵文字コントロールのコード(Pictogram.cs) | |
「SoftBank:晴れ」で指定されている「\x1B」(16進数)はASCIIコードの「27」(10進数)で、「\x0F」(16進数)はASCIIコードの「15」(10進数)だ。「\x」はリテラルとして指定可能な16進数エスケープシーケンスで、その後の「1B」や「0F」が16進数の数値である。 |
まず、3キャリアの種別を列挙体(enum)として定義し、カスタム・コントロールのプロパティに利用している。レンダリング処理を実現するOnRenderオーバーライド・メソッドにおいてキャリアを判断し、それぞれのキャリアに応じた「晴れ」絵文字のテキストを出力している。
続いて、この絵文字コントロールをモバイルWebフォームで利用してみる。
INDEX | ||
[連載].NETでモバイル・サイト開発を始めよう | ||
第2回 携帯サイトの「ドコモ、au、SoftBank」への対応 | ||
1.カスタム・コントロールの作成 | ||
2.カスタム・コントロールの利用 | ||
3.デバイス・アダプタについて | ||
4.ブラウザ定義ファイルの作成 | ||
5.デバイス・アダプタの作成 | ||
6.デバイス・アダプタの利用 | ||
「.NETでモバイル・サイト開発を始めよう」 |
- 第2回 簡潔なコーディングのために (2017/7/26)
ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている - 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう - 第1回 明瞭なコーディングのために (2017/7/19)
C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える - Presentation Translator (2017/7/18)
Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|