一种最佳做法是在您的扩展的 ActionScript 公共接口中保持向后兼容性。请在该扩展的所有后续版本中继续支持该扩展的类、方法、属性和事件。
设备绑定扩展有一个更复杂的向后兼容性问题。有时,在扩展的不同版本之间,扩展的
行为
是不同的。例如,在该扩展的新版本中,某个特定方法返回一个具有新含义的值。当设备绑定扩展发生此行为时,某个应用程序可能会停止正常工作。如果在生成应用程序时使用的扩展版本与设备上安装的扩展版本具有不同的行为,则可能发生此问题。在此情况下,应用程序期待一个行为,但已安装的扩展提供一个不同的行为。
在这样的情况下,设备上安装的扩展可以决定如何继续。扩展可以完成下列工作:
要查询生成应用程序所使用的扩展版本号,请执行下列操作:
-
使用
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>
元素的值。