この章ではiOS版においてのBiz/Browserとしての仕組みの違いについて記載します。
○iOS版のCRS実行エンジンはBiz/Browser
Vと同等のものを使用しています。
また、内部文字コードにはUnicodeが採用されています。
○メソッド名や変数名、外部リソース定数等の識別子の解決を行う際、全角文字に対しても大文字小文字を区別せずに扱われることがあります。
全角英字やギリシャ文字等を用いた識別子を使用する場合はご注意ください。
○使用可能な改行コードは、「\n」または「\r\n」となります。
○日本円の通貨記号は、全角の「¥」が使用されます。
○プラットフォームやアーキテクチャの違いにより、浮動小数点演算の結果がわずかに異なる場合があります。
○Edit系オブジェクト等でIMEを用いて入力中にフォーカスを移動した場合、入力中の文字列が確定されます。
○スクロールバーは表示されません。スクロールバーの表示制御を行うプロパティは、表示範囲を超えた部分にスクロールさせることができるかどうかのみを制御することができます。また、スクロール可能な領域ではタッチによるスクロール操作でスクロールを行います。
○Android版で搭載されたセキュリティレベルの概念はありません。
これに従い、セキュリティレベルに関わるメソッドなどはセキュリティレベルが無いものとしてそれぞれ動作します。
○OSの仕様上、Biz/Browserが前面に表示されていない状態になった時に自動的にBiz/Browserのプロセスが強制終了される場合があります。
そのため、処理・操作フロー等はそのことを考慮した開発が必要となります。
(CRSプログラムとしては、Root.SetReloginURLメソッド、Root.ReloggedInプロパティ、Root.WindowStateChangedイベント等を用いることで記述可能です)
○Biz/Browser VやBiz/Browser Mobile、Biz/Browser SmartDeviceの他のプラットフォームとはGUIの外観がそれぞれと異なる場合があります。
○端末やOSに依存する動作に対してはBiz/Browserはその挙動に従います。そのため一部の機能については結果・挙動に差異が出る可能性があります。
PC版やMobile版では、画面に表示する文字列に"&"が含まれるとアンダーラインに変化する仕様がありました。表示をMobile版と合わせるため、アンダーラインは付与されませんが代わりに"&"が表示文字列から除外されます。
Webサーバへのリクエスト時のUserAgentは以下の値になります。
UserAgentにて処理を分岐している場合ご注意ください。
Biz/Browser SmartDevice(iOS)
SYS.CLIENTの値は以下になります。
Biz/Browser SmartDevice(iOS)
またSYS_CLIENT_VERSIONも実行中のバージョンとなるため、既存のCRSプログラム中で、SYS_CLIENT_VERSIONやSYS_CLIENTを利用して処理を分岐していたような場合には注意が必要です。
プラットフォームごとに分岐し、iOS版での実行時のみ処理させて他のプラットフォームでの実行時には無視させる分岐処理ができる定数が用意されています。
使用可能な定数は以下になります。
・$iOS
iOS版でのみ「1」となります。
・$AI
Biz/Browser AI バージョン2.0以降でのみ「1」となります。
※互換のため、Biz/Browser SmartDevice 1.0以降でも「1」となります。
・$SmartDevice
Biz/Browser SmartDevice バージョン1.0以降でのみ「1」となります。
起動時にメインウィンドウ(rootオブジェクト)は画面上で最大化され変更することはできません。
root直下のFormオブジェクトはrootのサイズと連動しません。またX,Yプロパティに0以外の値を指定した場合無視されます。
StringオブジェクトにはUnicode文字が格納され、文字数や処理単位はUnicode1文字単位となります。
CRS内における文字コードの変換規則は下記のとおりです。
---CRSファイル--- ◇CRS解析時は、HTTPレスポンスヘッダのContent-Typeにcharsetが指定されていた場合その文字コードの文字列として扱います。また、BOMがある場合はBOMに従い、そうでない場合はShift-JISとなります。
---Stringクラス--- ◇文字数は、UTF-32の数え方と同様です。
---入出力関連--- ◇ByteArrayクラスオブジェクトにセットした文字列はUTF-8として扱います。
◇Fileクラス, Securityパッケージにおける入出力では、UTF-8として扱います。 ・DecryptorクラスDecryptStringメソッドの第二引数のpass(パスワード)はUTF-8として扱われます。 ・EncryptorクラスEncryptStringメソッドの第二引数のpass(パスワード)はUTF-8として扱われます。
◇HTTPパッケージにおける入出力 ・httpRequestのメソッドで指定される文字列はUTF-8として扱います。 ・httpResponseクラスのオブジェクトのレスポンスデータはByteArrayとして扱います。 ・httpResponseクラスのReadLineメソッドではUTF-8として扱われます。ただし、HTTPレスポンスヘッダのContent-Typeにcharsetが指定されていた場合その文字コードの文字列として扱います。
◇XMLパッケージにおける入出力 ・XmlDOMImplementationクラスのParse、LoadメソッドではUTF-8として扱われます ・XmlDocumentクラスのSaveメソッドでは第二引数で指定されたエンコードに従います。 (デフォルト:UTF-8)
◇CSVパッケージにおける入出力 ・CSVDocumentクラスのParseメソッド、Loadメソッド、SaveメソッドではUTF-8として扱われます。 ・CSVDocumentクラスのGetメソッドではUTF-8として扱われます。ただし、HTTPレスポンスヘッダのContent-Typeにcharsetが指定されていた場合その文字コードの文字列として扱います。
|
iOS版ではMaxLengthプロパティは文字数(Unicode単位) で統一されています。
iOS版ではIMEの入力モード(直接入力、かな入力等)を制御することはできません。
IMEモードを指定した場合のSIP(Software Input Panel)の状態につきましては各クラスのIMEModeプロパティを参照してください。
また、SIP(Software Input Panel)の表示内容についてはSIPModeプロパティを参照して下さい。
端末内蔵の標準フォントの違いにより、Biz/Browser VやBiz/Browser Mobile、Biz/Browser SmartDeviceの他のプラットフォームと比較して行間や文字幅が異なることがあります。
そのため、文字列が表示領域に収まらなかった場合の表示や、ワードラップ処理の結果が異なることがあります。
また、太字や斜体については端末に該当するフォントが存在する場合のみ適用されます。
下線は対応しておりません。
ハードウェアキーボードからの入力は保証されていません。また、KeyDownイベントは発生しません。
NextTabKeyプロパティ、PrevTabKeyプロパティなど、キー操作によるフォーカス制御はできません。
OSの違いによりドライブやディレクトリの構造がWindowsと異なるため、絶対パスでのアクセスなどにて動作しない場合があります。
iOS版でのプライベートルート、パブリックルートのパスはFileSystemクラスのページを参照して下さい。
アプリケーションのホームディレクトリは端末により異なります。
パスの区切り文字は"\"ではなく"/"を用います。
ファイルパスを表すワイルドカードの扱いがWindowsとは異なります。
(例:"*.*" を指定した場合、"." を1つ以上含むファイルのみが対象となります)
//.SYSオブジェクトのプロパティは以下となります。
プロパティ名 |
説明 |
---|---|
String MODELNAME
|
メーカーが設定したメーカー名や機種名が取得できます。 メーカーが自由に設定できるため必ず取得できるとは限りません。また書式に規則性はありません。 このプロパティを用いると機種に依存した条件分岐やコーディングが可能になります。 |
String PLATFORM
|
プラットフォーム種別が取得できます。 端末のCPU命令セットを取得できます。 |
String DEVICEID
|
機体固有のIDが取得できます。 この値を用いるとサーバ側で機体個別の管理やロギングなどが可能になります。 内部でiOSのUIDeviceのidentifierForVendorの値を使用しており、Biz/Browserをアンインストールしたりリセットしたりすると値が変わることがあります。 |
Biz/Browser SmartDeviceでは開発やデバッグを容易にするための補助機能として、画面の表示倍率をスクリプトを書かずに指定することのできる「スケーリング設定画面」を用意しています。
スケーリング設定画面で設定すると端末内で実行するすべてのCRSプログラムに一律で反映します。
アプリケーションシステムとして個々の画面でのスケーリング設定を行う場合には、下記のスケール関連設定をCRSスクリプトに記述して行なってください。
機能 |
対応するプロパティ |
---|---|
表示倍率設定 |
|
「スケーリング設定」画面 各項目
【表示倍率関連】
□デフォルトのスケール値を上書きする
チェックをつけた状態で[OK]ボタンを押下すると各倍率を即反映して表示します。
チェックを外した状態で[OK]ボタンを押下すると各倍率を「1.0」に戻します。
□水平方向倍率
水平方向(X, Width等)の表示倍率を指定します。
□垂直方向倍率
垂直方向(Y, Height等)の表示倍率を指定します。
□フォント倍率
フォントの表示倍率を変更します。
□[フォームにフィット]ボタン
「デフォルトのスケール値を上書きする」にチェックが入った状態で有効になります。
押下すると、Root直下のFormが収まる倍率値を自動的に各倍率欄にセットします。[OK]を押下するとセットされた倍率で表示されます。
□[リセット]ボタン
「デフォルトのスケール値を上書きする」にチェックが入った状態で有効になります。
各倍率欄に「1.0」をセットします。[OK]を押下するとセットされた倍率で表示されます。
※Formが存在しない、スクリプトが例外などで停止している場合には動作しません。
※スクリプトのスケーリング関連の記述が更新されることはありません。