从另一个Adobe Air应用程序

时间:2015-08-14 16:24:10

标签: android actionscript-3 flash air

我想创建基于Adobe Air的Android应用程序的更新机制。在我的私人,非常小的应用程序受众的特殊情况下,我使用我的应用程序apk文件的直接分发(没有Google Play,通过用户设备上的物理安装)。但我还需要能够自动安装更新(假设它是一个按钮'检查更新'在我的应用UI中)。任何人都可以帮我完成这项任务吗?我该如何创建呢?

现在我有了这个想法: 我尝试用我的应用程序下载文件(使用加载器并使用File api将文件写入)到用户存储...然后我想使用任何Air Native Extension来启动该文件。是否已经创建了ANE来做到这一点?

1 个答案:

答案 0 :(得分:0)

在我的创建自动更新机制的情况下,我从app.xml获取本地版本号,从服务器获取最新号码。 这是我的设置。

app.xml的

...
<name>mysomeapp</name>
<!-- A string value of the format <0-999>.<0-999>.<0-999> that represents application version which can be used to check for application upgrade. 
Values can also be 1-part or 2-part. It is not necessary to have a 3-part value.
An updated version of application must have a versionNumber value higher than the previous version. Required for namespace >= 2.5 . -->
<versionNumber>1.0.1</versionNumber>
...

动作

private var appVersion: String;
public function init():void
{
    // Get local versionnumber from app.xml
    var appDescriptor:XML = NativeApplication.nativeApplication.applicationDescriptor;
    var ns:Namespace = appDescriptor.namespace();
    appVersion = appDescriptor.ns::versionNumber;   // In this case, it returns "1.0.1".

    // Get latest versionnumber from server
    var httpservice: HTTPService = new HTTPService();
    httpservice.url = "http://myserver/foobar/version";
    httpservice.method = URLRequestMethod.GET;
    httpservice.addEventListener(ResultEvent.RESULT, checkVersionResult);
    httpservice.send();
}

public function checkVersionResult(e: ResultEvent): void
{
    // Compare latest number with local number.
    if (e.result != appVersion)
    {
        // If the local version is not latest, download latest app from server.
        navigateToURL(new URLRequest("http://myserver/foobar/androidAppDownload"));
    }
}