この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

BlackBerry の考慮事項

モバイルアプリケーションでは、組み込みブラウザで Visualforce Mobile のページを起動します。Research in Motion (RIM) は BlackBerry オペレーティングシステムバージョン 4.3 のリリースで組み込みブラウザをアップグレードしましたが、組み込みブラウザの JavaScript のサポートには依然として制限があります。BlackBerry Bold (バージョン 4.6) および BlackBerry Storm (バージョン 4.7) にはより強力な標準ブラウザがありますが、組み込みブラウザは Visualforce Mobile を完全にサポートできるほど十分には改善されていません。

BlackBerry スマートフォン用のページを開発する場合は、次の考慮事項が適用されます。

JavaScript のサポート
BlackBerry の組み込みブラウザでの JavaScript のサポートは非常に限定されています。インライン DOM イベントはまったく機能しません。BlackBerry 用の Visualforce Mobile ページでは、可能な限り JavaScript は使用しないようにしてください。
フォームとビューステート
Visualforce ページは、要求間でデータベースの状態を維持するためにビューステートに依存しています。Visualforce ページで <apex:form> タグを使用すると、多くの場合、ビューステート変数は BlackBerry の組み込みブラウザには大きすぎて、非常に単純なフォームでも効果的に処理することができません。
フォームを作成する必要がある場合は、標準 HTML フォームを使用するようにしてください。フォームから送信されるパラメータをコントローラ内の ApexPages.currentPage().getParameters() 対応付けで取得できます。HTML フォームを使用するときは、次の点に留意してください。
  • ページ間の状態の維持は手動で実行する必要があります。
  • 他のページへのリダイレクトは手動で実行する必要があります。
  • <apex:commandLink> および <apex:commandButton> コンポーネントは使用できません。
ユーザがファイルをアップロードできる Visualforce Mobile ページの場合、<apex:form> コンポーネントと <apex:inputFile> コンポーネントを使用することが最良の選択です。2 つのコンポーネントはこの制限のある使用事例で適切に機能します。たとえば、アップロードフォームを作成するには、次のように Apex コントローラメソッドを 2 つのタグと併用します。
1<apex:form>
2	<apex:inputFile value="{!attachment.body}"/>
3	<apex:commandButton action="{!save}"/>
4</apex:form>
実装環境では trasient 変数を使用することでさらに利点を得ることができます。transient キーワードは、ポストバック時に保存する必要のないデータに使用されます。前の例では、添付ファイル自体は非 transient である必要がありますが、添付ファイルの内容は非常に大きくなる可能性があるため、ビューステートに内容を保存することは妥当ではありません。
解決策は、Blob ファイルの種類を取得するように <apex:inputFile> の値を次のように変更することです。
1<apex:form>
2	<apex:inputFile value="{!theBlob}"/>
3	<apex:commandButton action="{!save}"/>
4</apex:form>
次に、このページの Apex コントローラで theBlob を transient として定義します。
1Transient Blob theBlob;
最後に、save メソッドで、theBlob の値を使用して添付ファイルを定義します。
1attachment.body = theBlob; 
2upsert attachment; 
3attachment.body = null.
添付ファイルの内容は適切なデータで更新されますが、データは保持されません。添付ファイル自体は非 transient であるため、保存後は attachment.bodynull に設定します。
Visualforce タグ配置の誤り
Visualforce タグには、コンパイルして HTML に解決するときに誤って解釈されたり、解釈されなかったりするものがあります。
  • <apex:facet> コンポーネントは、コード内で表示されている場所に配置されます。必ずページでの表示位置に <apex:facet> タグを配置してください。たとえば、<apex:facet name="footer"> コンポーネントはセクションの最下部に配置します。
  • <apex:sectionHeader> コンポーネントと <apex:pageBlock> コンポーネントで提供される Salesforce の標準スタイルは、崩れてしまうか、あるいは無視されます。より単純なタグを使用するか、純粋な HTML を記述してください。
ページのスタイル
Visualforce Mobile ページのスタイル設定でのベストプラクティスに必ず従ってください。また、BlackBerry の組み込みブラウザは、margin-left などの一部の共通の CSS プロパティを無視するため注意してください。
改行
<br/> タグは、改行なしスペースなど、行に何かが存在ない限り無視されます。
ナビゲーション
BlackBerry クライアントアプリケーションの組み込みブラウザには、組み込みナビゲーションはありません。Visualforce ページがウィザードである場合、ユーザが以前のページに戻ったり次のページに移動したりできるナビゲーションリンクを使用する必要があります。また、Visualforce ページはタブに埋め込まれます。このため、モバイル Visualforce ページ内のナビゲーションにタブは使用しないでください。