下位互換性と拡張のパブリックインターフェイス
ベストプラクティスとしては、拡張の ActionScript パブリックインターフェイスで下位互換性を維持します。拡張のすべての後続バージョンで、拡張のクラス、メソッド、プロパティおよびイベントを継続的にサポートします。
デバイスバンドル拡張には、下位互換性に関して、より複雑な問題があります。拡張の「動作」は拡張のバージョン間で異なる場合があります。例えば、あるメソッドが、新しいバージョンの拡張では新しい意味を持つ値を返すことがあります。デバイスバンドル拡張でこの動作が発生した場合、アプリケーションが正常に機能しなくなる場合があります。この問題は、アプリケーションの構築で使用された拡張のバージョンが、デバイス上にインストールされた拡張のバージョンと異なる動作をする場合に発生することがあります。この場合、アプリケーションが予期する動作に対して、インストールされた拡張が異なる動作を提供します。
このような場合は、デバイスにインストールされた拡張で、続行する方法を決定できます。拡張は次のことを実行できます。
-
AIR アプリケーションの構築に使用した拡張バージョンと、デバイスにインストールされたバージョンを確認します。
-
拡張の動作がこの 2 つのバージョンで異なるかどうかを判断します。
-
AIR アプリケーションがより古いバージョンの拡張を使用して構築された場合は、古いバージョンの動作に戻します。
アプリケーションの構築に使用した拡張のバージョン番号を確認するには、以下を実行します。
-
File.applicationDirectory
を使用してアプリケーションのインストールディレクトリを取得します。
-
File クラスの API を使用して、アプリケーションの構築で使用した拡張の extension.xml ファイルにアクセスします。このファイルは次の場所にあります。
<application directory>/META-INF/AIR/extensions/<extensionID>/META-INF/ANE/extension.xml
-
extension.xml ファイルのコンテンツを読み取り、
<versionNumber>
エレメントの値を検索します。
インストールされた拡張のバージョン番号を確認するには、以下を実行します。
-
ExtensionContext.getExtensionDirectory()
静的メソッドを使用して、拡張の基本ディレクトリを取得します。
-
File クラスの API を使用して、デバイスにインストールされた拡張の extension.xml ファイルにアクセスします。このファイルは次の場所にあります。
<extension base directory>/META-INF/ANE/extension.xml
-
extension.xml ファイルのコンテンツを読み取り、
<versionNumber>
エレメントの値を探します。
下位互換性とデバイスのアプリケーションストア
デバイスにインストールされた拡張よりも新しいバージョンの拡張を使用して構築された AIR アプリケーションは、通常はデバイスでは利用できません。アプリケーションが利用できない原因は、デバイスの製造元が、デバイスのアプリケーションストアから、そのようなアプリケーションをダウンロードするサーバーへの要求を処理する方法にあります。アドビはデバイス製造元に対して、次の処理を行うことをお勧めします。
-
サーバーが、新しいバージョンの拡張を使用するアプリケーションをダウンロードし、新しいバージョンの拡張もダウンロードする場合を考慮してください。この場合、デバイスのアプリケーションストアでは、アプリケーションと新しいバージョンの拡張の両方をインストールします。
-
サーバーが新しいバージョンの拡張をダウンロードできず、そのバージョンの拡張を使用するアプリケーションもダウンロードしない場合を考慮してください。この場合、デバイスのアプリケーションストアでは、このシナリオを正常に処理し、必要に応じてエンドユーザーに通知します。
-
サーバーは、新しいバージョンの拡張を使用するアプリケーションをダウンロードしますが、新しいバージョンの拡張はダウンロードしない場合を考慮してください。この場合、デバイスのアプリケーションストアでは、エンドユーザーがアプリケーションを実行できないようにします。アプリケーションストアでは、このシナリオを正常に処理し、必要に応じてエンドユーザーに通知します。
|
|
|