cordova APP 检查更新

简介: 原文:cordova APP 检查更新 //升级程序 .factory('UpdateService', function ($rootScope, $cordovaAppVersion, $cordovaFileTransfer, $timeout, $ionicLoading, $...
原文: cordova APP 检查更新

//升级程序
    .factory('UpdateService', function ($rootScope, $cordovaAppVersion, $cordovaFileTransfer, $timeout, $ionicLoading, $cordovaFileOpener2, $http, $ionicPopup, xc) {

        //检查更新
        var checkUpdate = function () {
            $cordovaAppVersion.getVersionNumber().then(function (v) {
                var url = xc.server.domain + 'update/checkNew/' + xc.app.id + '/android/' + v;
                $http.get(url)
                    .error(function () {
                        console.log('从服务器获取数据失败!');
                    })
                    .then(function (response) {
                            var data = response.data;
                            var compatible_binary = data.compatible_binary;
                            var update_available = data.update_available;
                            if (compatible_binary && update_available) {
                                var url = xc.server.domain + data.update.url;
                                showUpdateConfirm(url, data.info || '');
                            }
                        }
                    );
            });
        };

        /**
         *
         * @param url
         * @param info
         */
        var showUpdateConfirm = function (url, info) {

            var confirmPopup = $ionicPopup.confirm({
                title: '版本升级',
                template: info.toString().replace(/\n/g, '<br />'),
                cancelText: '取消',
                okText: '升级'
            });

            confirmPopup.then(function (res) {
                if (res) {
                    $rootScope.process = 0;
                    $ionicLoading.show({
                        template: '<ion-spinner icon="bubbles" class="spinner-assertive spinner spinner-bubbles"></ion-spinner><br>已经下载:{{process}}%'
                    });
                    var targetPath = cordova.file.externalDataDirectory + "update.apk";//APP下载存放的路径,可以使用cordova file插件进行相关配置
                    var trustHosts = true;
                    var options = {};
                    $cordovaFileTransfer.download(url, targetPath, options, trustHosts).then(function (result) {
                        // 打开下载下来的APP

                        //console.log(JSON.stringify(result));

                        $cordovaFileOpener2.open(targetPath, 'application/vnd.android.package-archive'
                        ).then(function () {

                        }, function (err) {

                        });
                        $ionicLoading.hide();
                    }, function (err) {
                        alert('下载失败');
                    }, function (progress) {
                        //进度,这里使用文字显示下载百分比
                        $timeout(function () {
                            var downloadProgress = (progress.loaded / progress.total) * 100;
                            $rootScope.process = Math.floor(downloadProgress);
                            if (downloadProgress > 99) {
                                $ionicLoading.hide();
                            }
                        })
                    });

                } else {
                    // 取消更新
                }
            });
        };

        return {
            checkUpdate: checkUpdate
        }
    })

  

目录
相关文章
|
5月前
|
Linux Shell 网络安全
【Azure 应用服务】如何来检查App Service上证书的完整性以及在实例中如何查找证书是否存在呢?
【Azure 应用服务】如何来检查App Service上证书的完整性以及在实例中如何查找证书是否存在呢?
mpvue踩坑-未找到入口 app.json 文件,或者文件读取失败,请检查后重新编译
mpvue踩坑-未找到入口 app.json 文件,或者文件读取失败,请检查后重新编译
76 0
|
5月前
|
Python
【Azure 应用服务】App Service的运行状况检查功能失效,一直提示"实例运行不正常"
【Azure 应用服务】App Service的运行状况检查功能失效,一直提示"实例运行不正常"
|
5月前
|
安全 网络安全 Windows
【Azure App Service】遇见az命令访问HTTPS App Service 时遇见SSL证书问题,暂时跳过证书检查的办法
【Azure App Service】遇见az命令访问HTTPS App Service 时遇见SSL证书问题,暂时跳过证书检查的办法
【Azure App Service】遇见az命令访问HTTPS App Service 时遇见SSL证书问题,暂时跳过证书检查的办法
|
7月前
|
安全 网络安全 Windows
【Azure App Service】遇见az命令访问HTTPS App Service 时遇见SSL证书问题,暂时跳过证书检查的办法
在访问App Service的KUDU工具或使用`az webapp deploy`时遇到SSL错误:`SSL: CERTIFICATE_VERIFY_FAILED`。解决方法是临时禁用Azure CLI的SSL验证。在PowerShell中,设置`$env:ADAL_PYTHON_SSL_NO_VERIFY`和`$env:AZURE_CLI_DISABLE_CONNECTION_VERIFICATION`为1;在Windows命令提示符中,使用`set AZURE_CLI_DISABLE_CONNECTION_VERIFICATION=1`。注意,这可能引入安全风险,应仅在必要时使用。
138 9
|
8月前
|
Android开发 网络架构
【Android App】检查手机连接WiFi信息以及扫描周围WiFi的讲解及实战(附源码和演示 超详细必看)
【Android App】检查手机连接WiFi信息以及扫描周围WiFi的讲解及实战(附源码和演示 超详细必看)
1007 1
|
8月前
Cordova APP 设置图标
Cordova APP 设置图标
62 1
|
8月前
|
Java Android开发 数据安全/隐私保护
Cordova 打包APP安装失败
Cordova 打包APP安装失败
74 0
|
8月前
|
JavaScript Android开发
Cordova APP 无法访问后端接口
Cordova APP 无法访问后端接口
203 0
|
8月前
|
JavaScript Android开发
Cordova 后台运行 Android APP
Cordova 后台运行 Android APP
118 0