资讯专栏INFORMATION COLUMN

cordova-plugin-app-version插件的使用

aisuhua / 352人阅读

摘要:开发项目的时候自动更新工鞥呢,需要获取的版本,可以用来的获取版本号,可以用命令行,或者在配置文件进行配置。但是有一点需要注意的是执行此语句,必须等待元素加载完毕。简单一点就是,若是在传统的中用到,需要配合着使用,或者中相关文章

开发项目的时候自动更新工鞥呢,需要获取app的版本,cordova-plugin-app-version可以用来的获取版本号,可以用命令行:cordova plugin add cordova-plugin-app-version,或者在配置文件config.xml、package.json进行配置。

 getServerVersion: function (curVersion) {
        var deferred = $q.defer(),
          promise;

        if (curVersion) {
          promise = $http.get(CONFIG.url.version, {params: {version: curVersion}});
        } else {
          promise = $http.get(CONFIG.url.version);
        }
        promise.then(function (response) {
          deferred.resolve(response.data.data.versions);
        }).catch(function (error) {
          deferred.reject(error);
        });
        return deferred.promise;
      },

      getLocalVersion: function () {
        var deferred = $q.defer();

        cordova.getAppVersion.getVersionNumber().then(function (localVersion) {
          deferred.resolve(localVersion);
        }).catch(function (error) {
          deferred.reject(error);
        });
        return deferred.promise;
      },

      checkUpdate: function () {
        var self = this,
          localVersion;

        this.getLocalVersion().then(function (response) {
          localVersion = response;
          return self.getServerVersion(response);
        }).then(function (serverVersions) {
          var latestVersion = _.isArray(serverVersions) ? _.first(serverVersions) : serverVersions,
            laterThanServer = commonService.laterThan(localVersion, latestVersion.number),
            isForceUpdate = _.some(_.initial(serverVersions), function (item) {
              return item.flag === 1;
            });

          commonService.setItem("latestVersion", latestVersion);
          return laterThanServer && isForceUpdate;
        }).then(function (isForce) {
          isForce && commonService.confirm(i18n.need_update_label, i18n.force_update_tip).then(function (res) {
            if (res) {
              checkUpdateEnv(isForce);
            } else {
              ionic.Platform.exitApp();
            }
          });
        }).catch(function (reason) {
          console.log("version compare filed : " + JSON.stringify(reason));
        });
      }

但是有一点需要注意的是执行此语句,必须等待DOM元素加载完毕。简单一点就是,若是在传统的javaScript中用到,需要配合着window.onload使用,或者 ionic.Platform.ready中

ionic.Platform.ready(function () {
      if (window.cordova && window.cordova.plugins && window.cordova.plugins.Keyboard) {
        window.cordova.plugins.Keyboard.hideKeyboardAccessoryBar(false);
        window.cordova.plugins.Keyboard.disableScroll(true);
        apiService.checkUpdate();
      }
      try {
        $cordovaStatusbar.style(0);
        checkNetworkState();
        checkSystemVersion();
        $ionicPlatform.is("Android") && $ionicPlatform.registerBackButtonAction(registerBackButton, 101);
      } catch (e) {
        console.warn("some thing error when app launched: " + e.message);
      }
      autoLogin();
    });
相关文章:

http://www.ionic.ren/2015/11/...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/84490.html

相关文章

  • cordova-plugin-app-version插件使用

    摘要:开发项目的时候自动更新工鞥呢,需要获取的版本,可以用来的获取版本号,可以用命令行,或者在配置文件进行配置。但是有一点需要注意的是执行此语句,必须等待元素加载完毕。简单一点就是,若是在传统的中用到,需要配合着使用,或者中相关文章 开发项目的时候自动更新工鞥呢,需要获取app的版本,cordova-plugin-app-version可以用来的获取版本号,可以用命令行:cordova pl...

    idealcn 评论0 收藏0
  • cordova-plugin-app-version插件使用

    摘要:开发项目的时候自动更新工鞥呢,需要获取的版本,可以用来的获取版本号,可以用命令行,或者在配置文件进行配置。但是有一点需要注意的是执行此语句,必须等待元素加载完毕。简单一点就是,若是在传统的中用到,需要配合着使用,或者中相关文章 开发项目的时候自动更新工鞥呢,需要获取app的版本,cordova-plugin-app-version可以用来的获取版本号,可以用命令行:cordova pl...

    csRyan 评论0 收藏0
  • jQuery入门笔记之(七)插件

    摘要:目前插件已超过几千种,由来自世界各地的开发者共同编写验证和完善。而对于开发者而言,直接使用这些插件将快速稳定架构系统,节约项目成本。也就是说,插件也是代码,通过文件引入的方式植入即可。现在我们就完成了一个下拉菜单的插件。 插件(Plugin)也成为 jQuery 扩展(Extension),是一种遵循一定规范的应用程序接口编写出来的程序。目前 jQuery 插件已超过几千种,由来自世界...

    defcon 评论0 收藏0
  • 读 VuePress(四)插件机制设计

    前言 从 9 月份开始,vuepress 源码进行了重新设计和拆分。先是开了个 next 分支,后来又合并到 master 分支,为即将发布的 1.x 版本做准备。 最主要的变化是:大部分的全局功能都被拆分成了插件的形式,以可插拔的方式来支撑 vuepress 的运作,这一点很像 webpack。 具体架构如下: showImg(https://user-gold-cdn.xitu.io/2019...

    April 评论0 收藏0
  • 有关Android插件化思考

    摘要:第五点更重要,做插件化需要控制两个地方。因此不符合插件化的需求,不作考虑。支持加载外部的或者文件,正好符合文件化的需求,所有的插件化方案都是使用来加载插件中的文件的。方案简单,适用于自身少量代码的插件化改造。年月是手机助手实现的一种插件化 最近几年移动开发业界兴起了「 插件化技术 」的旋风,各个大厂都推出了自己的插件化框架,各种开源框架都评价自身功能优越性,令人目不暇接。随着公司业务快...

    shmily 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<