to topto bottom

モバイルファースト時代のマルチデバイス対応を確実・簡単に

【更新】“iモードブラウザ2.0”搭載機種において基本絵文字が非表示となる現象を回避する設定について

更新:2009/6/22
更新:2009/11/9

平素より『x-Servlet』をご愛顧いただき誠にありがとうございます。

このページでは、現行のx-Servletにおいてこの現象を回避する為の設定についてお知らせします。 この方法で回避設定を行う際には必ず 回避策の注意点をお読みください。

【更新】2009-11-09
この現象を回避する「対応プログラム」の配布をしております。 「対応プログラム」をご用命のお客さまは、x-Servletサポートチーム、もしくは、お客さま担当営業までお問い合わせください。

ドコモ端末におけるブラウザのバージョン毎の絵文字対応状況

iモードブラウザ1.0 端末(iモード対応HTML4.0以上)

  • Shift-JISのバイナリコード
  • Shift-JISテキスト ★

iモードブラウザ1.0 端末(iモード対応HTML4.0以上)

  • Shift-JISのバイナリコード
  • Shift-JISテキスト ★
  • Unicodeのテキスト

iモードブラウザ2.0 端末

  • Shift-JISのバイナリコード
  • Unicodeのテキスト

★ 現行のx-Servletでは、元コンテンツの記述方法に関わらず、絵文字の変換結果は全て「Shift-JISテキスト」形式で出力しております。

その為、「Shift-JISテキスト」に対応していない“iモードブラウザ2.0”搭載端末で絵文字を正常に表示させるには、「Shift-JISのバイナリコード」または「Unicodeのテキスト」で出力する必要があります。

設定概要

  • 変換元のコンテンツの絵文字の記述を「Unicodeのテキスト」とする
  • その上で、x-Servletの端末識別を用いて「“iモードブラウザ2.0”端末のグループ」をつくり、そのグループへ向けコンテンツのスルー出力(スルーモード出力)を行う
  • “iモードブラウザ2.0”端末の識別は「ドコモ端末」かつ「キャッシュ500KB以上」の端末とする

この設定により、絵文字を含めた“コンテンツ変換を行うグループ”と“iモードブラウザ2.0のグループ”を識別し、“変換グループ”には 「Shift-JISテキスト」を、“iモーx-Servletの設定変更ドブラウザ2.0グループ”にはスルー出力で「Unicodeテキスト」を出力します。

スルーモードによる回避策の注意点

  • x-Servletのセッション管理ができなくなります

    回避設定を行うと“iモードブラウザ2.0”端末にはスルーモードで出力します。スルーモードではセッション管理機能および、Cookie代行機能が利用できなくなるため、セッションID("_xpxi"パラメータ)や、"setSessionHeader"設定により付加される"X-Xp-Session-Header"をWebサイト側で利用している場合は、これらの値が取得できなくなります。

    また、Webサーバからのレスポンスに含まれる"Set-Cookie"ヘッダの値が端末へ出力されます。

  • コンテンツ内のJavaScriptはそのまま出力されます

    コンテンツ内に JavaScriptを記述している場合、通常の変換ではJavaScriptが削除されますが、スルーモードでは削除されずにそのまま出力されます。 “iモードブラウザ2.0”端末では JavaScript機能が「有効」となっている場合、JavaScriptが動作してしまいますので意図しない動作となる可能性があります。

    (※これらの動作は“iモードブラウザ2.0”端末に対してのみ起こります)

動作概要

  • iモードブラウザ1.0 端末 (コンテンツ変換を行うグループ)

    [Unicodeのテキスト] --->[変換] ---> [Shift-JISテキスト]
  • iモードブラウザ2.0 端末 (iモードブラウザ2.0グループ)

    [Unicodeのテキスト] ---(スルー)---> [Unicodeのテキスト]
    ※コンテンツもスルーで出力されます。

設定方法

1.元コンテンツの加工

元コンテンツの絵文字の記述を全てUnicodeで記述してください。

2.x-Servletの設定変更

(1) UAGroupSetting.xml に以下のグループを追加してください。

-----------------------------------------------------------------
<!-- ドコモ端末でキャッシュサイズ500KB以上 -->
<UAGroup name="docomo_c500"> 
  <And>
    <StringCondition name="ServiceName">i-MODE</StringCondition>
    <NumberCondition name="ContentMaxBytes" type="ge">
    500000</NumberCondition>
  </And>
</UAGroup>
-----------------------------------------------------------------

(2) contentsRule.xml に、(1)のグループからのアクセスはスルーモードで動作するよう、既存のルールの上に追加してください。

例:

-----------------------------------------------------------------
<ContentsRule>
  <ConditionPort>80</ConditionPort>
  <ConditionDir>/mobile</ConditionDir>

  <Host>192.168.1.100</Host>
  <Port>8080</Port>
  <PreDir>/mobile</PreDir>

  <DefaultEncoding>Shift_JIS</DefaultEncoding>

  <Attribute name="imageConvertType">ImageConvert</Attribute>
</ContentsRule>
-----------------------------------------------------------------

というルールの場合

-----------------------------------------------------------------
<!-- iモードブラウザ2.0 端末の場合はスルー出力 -->
<ContentsRule>
  <ConditionPort>80</ConditionPort>
  <ConditionDir>/mobile</ConditionDir>
  <ConditionUAGroup>docomo_c500</ConditionUAGroup>

  <Host>192.168.1.100</Host>
  <Port>8080</Port>
  <PreDir>/mobile</PreDir>

  <DefaultEncoding>Shift_JIS</DefaultEncoding>

  <Attribute name="imageConvertType">ImageConvert</Attribute>
  <Attribute name="cookieControl">false</Attribute>
  <Attribute name="className">jp.co.flexfirm.xproxy.control.rule
  .ContentsRule_Through</Attribute>
</ContentsRule>

<!-- 従来の端末の場合は通常変換 -->
<ContentsRule>
  <ConditionPort>80</ConditionPort>
  <ConditionDir>/mobile</ConditionDir>

  <Host>192.168.1.100</Host>
  <Port>8080</Port>
  <PreDir>/mobile</PreDir>

  <DefaultEncoding>Shift_JIS</DefaultEncoding>

  <Attribute name="imageConvertType">ImageConvert</Attribute>
</ContentsRule>
-----------------------------------------------------------------

(3) x-Servletを再起動してください。

この設定により、“iモードブラウザ2.0搭載端末”と“非搭載端末”との端末識別が有効になり、“iモードブラウザ2.0”搭載端末における基本絵文字の非表示を回避することができます。

※iモードブラウザ2.0端末はキャッシュサイズが500KBに拡張されており画像も変換することなく表示することができます。 絵文字のコードをUnicodeにしてスルー出力することで絵文字も表示されます。

注1:

iモードブラウザ2.0端末はスルーモードで出力するので x-Servlet の独自機能を利用している場合(セッションIDを利用した集計、独自ヘッダの参照等)はこの方法は利用できません。

注2:

元コンテンツの1ページのサイズが500KBを超える場合は分割を行う必要があるためこの方法は利用できません。

以上が設定方法となります。

本件に関しましてご不明な点などありましたら、『x-Servletサポートチーム』までお問い合わせください。

タグ: 
x-Servlet