ionic学习(十二):推送app的版本更新

0、先写个做这个功能的总结吧:

     ionic虽说写代码比原生的方便,但是,打包一直让人很难受,打包不成功的主要原因就是某个插件的版本问题,所以做这个功能时让人抓狂,抓狂原因下面讲。

1、多插件自身更新方法

    用的最多的就是自身更新,这几个博客就是这么讲的:

https://blog.csdn.net/qq_30737525/article/details/79484055

https://blog.csdn.net/zuoyiran520081/article/details/79317451

需要装5个插件!!

装完后,代码一行没写,就不能打包!!

一个一个插件安装后,打包测试,足足搞了一下午!电脑老了打包太慢了!

最后发现这个问题:

        升级需要5个插件:

         (1)File (2)Transfer (3)File Opener (4)App Version (5)In App Browser

         安装File Opener插件后,会导致打包失败

          经测试,File Opener版本1.0.11可以打包成功

然后就拷贝别人代码!然后各种错误不断!做了那么久的努力,还是果断放弃!

2、官方更新插件

在简书的一篇文章的评论中发现了一个官方升级插件!

简书地址:https://www.jianshu.com/p/a41223a0b6a2;

 

官方插件地址:

https://ionicframework.com/docs/native/app-update/

果然很坑!!app可以打包,可以安装,就是打不开!!一点击就闪退!!

3、算了,别做这么高级了!调用手机的浏览器更新吧

好多软件也都是调用浏览器更新的,也不算low,而且问题也没那么多。

具体如下:

1.安装App Version插件,用来获取版本号,需要真机上才能用

2.调用接口,判断版本号是否要更新

3.如果要更新,调用浏览器更新

获取版本号代码:

this.version = this.appVersion
      .getVersionNumber()
      .then((version: string) => {
        this.version = version;
        }
      })
      .catch(err => {
        console.log("getVersionNumber:" + err);
      });

升级函数 (删减版,可能有误):

主要函数就是这个跳转:

window.open(url, "_blank", "location=yes");//更新跳转

 /**
   * version: any;//当前版本号
   * upGradeVersion: any;//后台获取的版本号
   * upGradeUrl: any;//后台获取的下载链接
   */

  upGrade() {
    //请求等待
    var loading = super.showLoading(
      this.loadingCtrl,'正在获取更新信息……');
    loading.dismiss(); 
    //请求数据
    this.meService.pushUpgradeData().subscribe(
      res => {
        this.pulldata = res;
          this.upGradeVersion = this.pulldata["version"];
          this.upGradeUrl =
            this.httpService.getUpgradeHost() + this.pulldata["path"];
          if (this.version >= this.upGradeVersion) {
            this.noUpGradeConfirm("已是最新版本!");
          } else {
    window.open(url, "_blank", "location=yes");//更新跳转
]
            );},error => console.log(error);
});
 

php升级测试接口:

<?php
//首先做跨域处理!
 header('Access-Control-Allow-Origin: '.$_SERVER['HTTP_ORIGIN']);
        header('Access-Control-Allow-Credentials: true');
        header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS');
        header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, authKey, sessionId");
		header('Content-Type:application/json');
$json='{ 
  "action": "query", 
  "result": "success", 
  "paht": "/apk/giri-mpm-app.apk", 
  "version": "0.2.8",
  "note": "更新: 1.自我升级; 2.提交反馈意见 。修复: 1.服务器连接异常后重新登录。"
}';//注意外面的单引号
echo $json;
?>

 

然后就OK了

 

以上只是部分代码,如果前面http请求接口配置好,可以参考,如果是小白,上面代码是用不了的,具体代码待我整理一份都再分享!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

七刀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值