zoukankan      html  css  js  c++  java
  • ionic android升级检查

    https://www.cnblogs.com/zxj159/p/4421578.html

    坑:

    放到cordova.file.DataDirectory下载异常? 只好cordova.file.externalDataDirectory

    代码

            // 检查更新
            $scope.appUpdateCheck = function(init) {
                var init = init || 0;
    
                // appUpdateService.showUpdateConfirm({});
                // return;
    
                VersionService.get({ platform: ionic.Platform.platform() }, function(resp) {
                    // alert(JSON.stringify(resp))
                    if (resp.code == '000') {
                        // alert(resp.data.version)
                        // alert($cordovaAppVersion.getVersionNumber())
                        // alert($cordovaAppVersion.getVersionCode())
    
                        cordova.getAppVersion.getVersionNumber(function(version) {
                            // alert(version)
                            if (version == resp.data.version) {
                                if (!init) {
                                    messageService.show('当前已是最新版本');
                                }
                                return;
                            }
    
                            $scope.hasNewVersion = 1;
                            $scope.device_items[1].name = $sce.trustAsHtml('升级检查<font style="color:#FD1F38"> - New!</font>');
    
                            if (!init) {
                                appUpdateService.showUpdateConfirm(resp.data);
                            }
                        });
                    } else {
                        messageService.show(resp.msg);
                    }
                });
            }
    
     ;
     (function(angular) {
    
        angular.module('mobile')
    
            .factory('appUpdateService', ['$cordovaFileTransfer', '$cordovaFileOpener2', '$ionicPopup', '$ionicLoading', '$timeout', 'messageService',
                function($cordovaFileTransfer, $cordovaFileOpener2, $ionicPopup, $ionicLoading, $timeout, messageService) {
                    // 显示是否更新对话框
                    function showUpdateConfirm(versionInfo) {
                        var versionInfo = versionInfo;
                        var downloadUrl = versionInfo.url,
                            updateLog = versionInfo.upgradeinfo,
                            targetPath = 'file:///storage/sdcard0/Download/XiaoShuTong.apk' //APP下载存放的路径,可以使用cordova file插件进行相关配置
    
                        // TODO 测试数据
                        // downloadUrl = 'http://imtt.dd.qq.com/16891/006473EB7690D8B89DEBD9613BF9E40E.apk?fsname=com.tencent.mm_6.6.0_1200.apk'
                        // updateLog = '1. 更新模块升级<br>2. 修复1个bug<br>'
                        targetPath = cordova.file.externalDataDirectory + 'XiaoShuTong.apk'
    
                        var confirmPopup = $ionicPopup.confirm({
                            title: '版本升级',
                            template: updateLog, //从服务端获取更新的内容
                            cancelText: '取消',
                            okText: '升级'
                        });
                        confirmPopup.then(function(res) {
                            if (res) {
                                // if (ionic.Platform.isIOS()) {
                                //     // 提示进入 APP store
                                //     messageService.show('请到App Store升级.');
                                // }
                                if (ionic.Platform.isAndroid() && downloadUrl != '') {
                                    $ionicLoading.show({
                                        template: "已经下载:0%"
                                    });
                                    $cordovaFileTransfer.download(downloadUrl, targetPath, null, true).then(function(result) {
                                        // 打开下载下来的APP
                                        $cordovaFileOpener2.open(targetPath, 'application/vnd.android.package-archive').then(function() {
                                            // 成功
                                        }, function(err) {
                                            // 错误
                                            // alert('安装文件打开失败, 请尝试手动安装.');
                                            messageService.show('安装文件打开失败, 请尝试手动安装.');
                                        });
                                        $ionicLoading.hide();
                                    }, function(error) {
                                        $ionicLoading.hide();
                                        // alert(JSON.stringify(error));
                                        // messageService.show(JSON.stringify(error));
                                        messageService.show('请设置应用文件操作权限, 然后重试.');
                                    }, function(progress) {
                                        var downloadProgress = Math.floor((progress.loaded / progress.total) * 100);
                                        if (downloadProgress > 0) {
                                            $ionicLoading.show({
                                                template: '已经下载:' + downloadProgress + '%'
                                            });
                                        }
                                        if (downloadProgress > 99) {
                                            $ionicLoading.hide();
                                        }
                                    });
                                }
                            } else {
                                // 取消更新
                                $ionicLoading.hide();
                            }
                        });
                    }
    
                    // return
                    return {
                        showUpdateConfirm: showUpdateConfirm
                    }
                }
            ]);
    
     })(angular);
    
    
  • 相关阅读:
    vue中在echarts tooltip中添加点击事件
    支配树
    mac安装protobuf
    mac安装 thrift
    Javascript设计模式读书笔记二 接口
    WebBrowser捕获网页关闭事件
    谈谈UserControl调用页面的几种方法
    屏蔽刷新提交后台
    [喜讯]Acey.ExcelX组件已发布在componentsource
    AceyOffice教程如何判断单元格的内容
  • 原文地址:https://www.cnblogs.com/wancy86/p/8127208.html
Copyright © 2011-2022 走看看