ionic app androidプラットフォームで自動的にダウンロードしてインストールします

3636 ワード

ゼロ)コンテンツはネットワークから取得してテストして整理したもので,基本的に大部分のニーズに対応できるようになった.
  • 一部のエラーを修正し、アップグレードの説明がサーバ側の構成から来るなど、一部の内容を補完し、ダウンロードの進捗バーが
  • に正しく表示されます.
  • サーバ側コードの追加および説明
  • appアップグレード手順を追加します.

  • 一)必要なプラグインを先にインストールする:
    ionic plugin add cordova-plugin-app-version
    ionic plugin add cordova-plugin-file
    ionic plugin add cordova-plugin-file-transfer
    ionic plugin add cordova-plugin-file-opener2
    二)app.jsのrunメソッドにコードを追加する
    $ionicPlatform .ready(function () {
    //    
    //        
      if (ionic.Platform.isAndroid()) {
        $http.jsonp('http://www.yourdomain.com/ver.php?callback=JSON_CALLBACK')
          .then(function (data) {
          var serverAppVersion = data.data.ver;//      
          
          $cordovaAppVersion.getVersionNumber()
            .then(function (version) {          
              if (version != serverAppVersion) {
                var confirmPopup = $ionicPopup.confirm({
                  title: '     :' + serverAppVersion,
                  template: data.data.desc, //           
                  cancelText: '  ',
                  okText: '  '
                });
                confirmPopup.then(function (res) {
                  if (res) {
                    if (version != serverAppVersion) {
                      $ionicLoading.show({
                        template: "    ,   ..."
                      });
                      var url = "http://www.yourdomain.com/app.apk";
                      var targetPath = "file:///mnt/sdcard/Download/app.apk";
                      var trustHosts = true;
                      var options = {};
                      $cordovaFileTransfer.download(url, targetPath, options, trustHosts)
                        .then(function (result) {
                        $cordovaFileOpener2.open(targetPath, 'application/vnd.android.package-archive'
                        ).then(function () {
                          }, function (err) {
                          });
                        $ionicLoading.hide();
                      }, function (err) {
                        alert('    ');
                      }, function (progress) {
                          //  ,             
                          var downloadProgress ;                      
                          downloadProgress = (progress.loaded / progress.total) * 100;
                          $ionicLoading.show({
                              template: '    :' + Math.floor(downloadProgress) + '%'
                          });
                          if (downloadProgress > 99) {
                            $ionicLoading.hide();
                          }                      
                      });
                    }
                  }
                });
              }
            });
        });
      }//if (ionic.Platform.isAndroid()) {
    });

    *特に注意したいのは、ブラウザでこのコードをデバッグできないため、依存関係を増やすことです.chrome://inspectionデバッグ
    三)バックエンドのver.phpコード
    <?php
    header("Content-type:text/html;charset=utf-8");
    $callback = $_GET['callback'];
    $response = array('ver'=>"0.0.3", 'desc'=>'1.xxx<br>2.yyyy<br>3.zzz');
    $json = json_encode($response);
    echo "$callback($json)";

    説明:callbackはjsonp呼び出しをサポートするためであり、ver.phpなどがドメイン間で呼び出されるようにする
    四)appアップグレード手順:
    1.プログラムを修正して、apkをコンパイルして、コンパイルする前に/config.xmlの中のversionを修正することを覚えて、1つのバージョン番号を高めます
    2.apkをサーバに指定したパスにアップロードする
    3.サーバー側ver.phpコードの変更:$response=array('ver'=>"0.0.3",'desc'=>'1.xxx
    2.yyyy
    3.zz');
    既存の文を注釈し、新しい文を追加することをお勧めします.これは、完全なアップグレード履歴を保持し、新しい文でverとconfig.xmlのversionを変更し、descのアップグレード内容を変更することに相当します.
    <>