強力なフラッターアプリケーションアップグレード機能

注:特に指定のない限り、フラッタバージョンとダートのバージョンは次の通りです:

  • フラッターバージョン:1.12.13 + hotfix.5
  • ダートバージョン:2.7.0

アプリケーションのアップグレード機能は、ユーザの原因になりますこの機能は、バグや新しいアプリケーション機能をアップグレードすることはできませんではない、古い顧客は、タッチアップ、およびユーザーのこの部分のさえ喪失することができない場合、アプリケーションの基本的な機能の一つです。

アプリケーションのアップグレード機能の重要性は、ここではプラットフォームから言えば、アプリケーションのアップグレード機能の下にいくつかの方法が、ある、と言うする必要がなくなります。

  • IOSプラットフォーム、アプリケーションのアップグレード機能は、アプリストアに行くことによってアップグレードすることができます。
  • Androidプラットフォームの両方が市場のアプリケーションに行くことによってアップグレードすることができ、あなたはまた、APKパッケージのアップグレードをダウンロードすることができます。

それぞれ、およびのために強制的に非必須のアップグレードをアップグレードすることを強制することができます。

  • 必須のアップグレードは:ユーザーは、ユーザーが憤りを引き起こす可能性が非常に必要ではないような強力な方法を使用することをお勧めしていない場合は、アプリケーションの使用を継続するためにアップグレードする必要があるということです。
  • 非必須のアップグレードは、ユーザーがクリックでアプリを使用し続けるために「キャンセル」できるようにすることです。

以下は、IOSとAndroidのアップグレードプロセスを導入しました。

IOSのアップグレードプロセス

次のようにIOSのアップグレードプロセスは、次のとおりです。

プロセスの説明:

  1. それは、ユーザ「アップグレード」ボタンを提供するだけであれば、現在のバージョンは「必須アップグレードが」であるかどうかを判断するためのポップアップボックスの新しいバージョンがある場合、通常、私たちは "そうでない場合はユーザーに提供し、新しいバージョンかどうかを取得するために、バックエンドのインターフェースへのアクセスを持っているでしょうアップグレード「と」「ボタンをキャンセルします。
  2. システムの後、あなたが選択した場合は、アップグレードするアプリケーションストアにジャンプする「アップグレード」を選択した場合、プロンプトボックスが消えるの「キャンセル」、アップグレードするかどうかをユーザに選択させます。

Androidのアップグレードプロセス

イオスは、アップグレードプロセスに比べて以下のように、少し複雑にAndroidの、フローチャートです。

プロセスの説明:

  1. Accessインターフェイスは、IOSの新しいバージョンであれば、背景を取得し、ここでは同じである、ポップアッププロンプトボックスのアップグレードを、それがユーザー「アップグレード」ボタンを提供するだけであれば、現在のバージョンは「必須アップグレードが」であるかどうかを判断するために存在し、それ以外のユーザーに提供するために「キャンセル」ボタンを「アップグレード」と。
  2. あなたはAPKをダウンロードしてアップグレードをアップグレードするか、アプリケーションのために市場を判断するためにジャンプする「アップグレード」を選択した場合、プロンプトボックスが消えるの「キャンセル」を選択した場合、システムプロンプトのユーザーは、アップグレードするかどうかを選択した後。
  3. ダウンロードAPKをアップグレードする場合、ダウンロードAPKを起動し、ダウンロード後のAPKは、ブート・インターフェースをインストールするための完全なジャンプです。
  4. アプリケーションのアップグレードならば、与えられたアプリケーションの市場、例えば、唯一のHuawei社のアプリケーション市場の棚には、あなたは、それがユーザーに基づくべき市場をヒットする多くのアプリケーションを持っている場合でも、Huawei社のアプリケーション市場へのこの時間のジャンプで指定する必要があるかどうかを判断するために、市場へのジャンプ電話がアプリケーション市場に指定されたアプリケーションの市場をインストールし、ユーザーがアプリケーション市場を選択することを可能にすることは良い経験ではありませんが、ユーザーは、ユーザーが使用すると、市場の棚を持っていないアプリケーションを選択した場合、それはもっと恥ずかしいだろう、これは市場の更新にはわかりません。
  5. 指定されたインターフェイスのアプリケーションの後に、特定のアプリケーション市場の更新に直接ジャンプします。

アップグレードプロセスを介して導入され、主人公が最後にプレーしました。

導入を使用してアプリケーションのアップグレード機能

ただ、自宅でinitStateアップグレード検出メソッドを呼び出します:

@override
  void initState() {
    AppUpgrade.appUpgrade(
      context,
      _checkAppInfo(),
      iosAppId: 'id88888888',
    );
    super.initState();
  }

_checkAppInfo場合の情報の新しいバージョンを入手するためのアクセス、バックエンドインターフェースするための方法、戻り値のFuture<AppUpgradeInfo>型の、AppUpgradeInfoアップグレードバージョンを強制するかどうかのタイトル、アップグレード、APKダウンロードURLを含みます。

iosAppIdアプリストアにジャンプするためのパラメータ。

_checkAppInfo()次のような方法では、通常、インターフェース、直接ここに戻って新しいバージョン情報舞台裏のアクセスです。

Future<AppUpgradeInfo> _checkAppInfo() {
  return Future.value(AppUpgradeInfo(
    title: '新版本V1.1.1',
    contents: [
      '1、支持立体声蓝牙耳机,同时改善配对性能',
      '2、提供屏幕虚拟键盘',
      '3、更简洁更流畅,使用起来更快',
      '4、修复一些软件在使用时自动退出bug',
      '5、新增加了分类查看功能'
    ],
    apkDownloadUrl: '',
    force: false,
  ));

さて、アップグレードの基本的な機能が完了し、次のように、ポップアップボックスの効果は次のとおりです。

「後で」プロンプトボックスが消滅をクリックして、自動的に異なるプラットフォーム間で区別「経験」をクリックしてください。

背景情報アクセスインタフェースは、現在のアプリケーションのパッケージ名とバージョンの一般的なニーズの新しいバージョンを入手するために、クエリメソッドは次のように:

await FlutterUpgrade.appInfo

リターンを入力しますAppInfo

  • versionName:バージョン番号など1.0.0。
  • versionCode:Androidのユニークなバージョン番号、versionCodeで対応するAndroidのbuild.gradle、IOSは「0」に戻ります
  • packageName:パッケージ名、Androidのbuild.gradle APPLICATIONID、BundleIdentifierのIOSに対応します。

iOSプラットフォームのアップグレード

関連するページに直接ジャンプするのiOSアプリストアプラットフォームは、iosAppIdそうでない場合は、アプリストアがアプリケーションを見つけることができない、設定する必要があります。

AndroidプラットフォームのダウンロードAPK

Androidプラットフォームは、APKダウンロードURLかどうかを判断しますあなたは直接ダウンロードAPKのダウンロードを設定する場合、次のように、その効果は次のとおりです。

ダウンロードが完了したら、次のようにインターフェース装着ガイドAPK効果に直接ジャンプは以下のとおりです。

ユーザーは、次のインターフェイスを許可]をクリックします:

インストールを続行するためにクリックして、インストールブート画面は、システム・インタフェース上で、異なる携帯電話または別のAndroidのバージョンは若干異なります。

ジャンプのAndroidプラットフォームのアプリケーション市場

次のようにあなたがAPKダウンロードアドレスを提供しない場合は、アプリケーションの市場にジャンプします、「経験」をクリックし、市場が指定されていないプロンプトボックスは、ユーザーがアプリケーション市場を選択することができ、ポップアップ表示されます、効果は次のとおりです。

現在のアプリケーションは、この市場の棚「のインターフェイスを見つけることができません」と表示されていない場合はヒントボックスが電話市場にインストールされたアプリケーションのすべてが含まれます、ユーザーが選択し、対応するアプリケーション市場、その後は、インターフェイスの詳細にジャンプします。

指定したアプリケーション市場は一般的に、これは次のようにアプリケーション市場に設置され、電話、クエリを知っているユーザーが必要です。

_getInstallMarket() async {
  List<String> marketList = await FlutterUpgrade.getInstallMarket();
}

あなただけの追加、たとえば、Google Playのために、他のアプリケーション市場を検出する必要がある場合はキビ、Meizuの、in vivoで、OPPO、華為、ZTE、360人のアシスタント、アプリケーションの宝、PPアシスタント、エンドウ豆ポッド、など、一般的に中国市場で使用されるプラグインを構築したアプリケーション、 GOOGLプレイパッケージ名に:

_getInstallMarket() async {
  List<String> marketList = await FlutterUpgrade.getInstallMarket(marketPackageNames: ['google play 包名']);
}

この方法は、携帯電話市場にインストールされたアプリケーションを返しジャンプインストールしたアプリケーションの市場を指定しますが、内蔵のアプリケーション市場を特定したい場合は、市場の用途に応じて、あなたは、パッケージ名に応じて、内蔵のアプリケーション市場についての情報を得ることができます。

AppMarketInfo _marketInfo = AppMarket.getBuildInMarket(packageName);

Huawei社は、アプリケーションの市場を指定しました:

AppUpgrade.appUpgrade(
  context,
  _checkAppInfo(),
  iosAppId: 'id88888888',
  appMarketInfo: AppMarket.huaWei
);

いいえ、内蔵アプリケーション指定マーケット次のように:

AppUpgrade.appUpgrade(
  context,
  _checkAppInfo(),
  iosAppId: 'id88888888',
  appMarketInfo: AppMarketInfo(
    '应用市场名称(选填)','应用市场包名','应用市场类名'
  ),
);

ヒントボックスのスタイルのカスタマイズ

デフォルトのアップグレードプロンプトボックスがニーズを満たしていない場合は、アップグレードプロンプトボックスをカスタマイズすることができます。

タイトルとテキストスタイリングアップグレード:

AppUpgrade.appUpgrade(context, _checkAppInfo(),
    titleStyle: TextStyle(fontSize: 30),
    contentStyle: TextStyle(fontSize: 18),
    ...
)

titleStyleおよびcontentStyleそのスタイルを設定、フォントサイズ、色、太字などを設定することができます。

設定は、「キャンセル」および「アップグレードボタン」のテキストとスタイル:

AppUpgrade.appUpgrade(context, _checkAppInfo(),
    cancelText: '以后再说',
    cancelTextStyle: TextStyle(color: Colors.grey),
    okText: '马上升级',
    okTextStyle: TextStyle(color: Colors.red),
    ...
)

デフォルトは「キャンセル」ボタンのテキストは、「後で」デフォルトボタンのテキストである「アップグレード」で「即時の経験。」

ボタンの背景色を「アップグレード」に設定し、あなたが左から右への2色グラデーション線形2色を必要とするあなたはソリッドカラーを設定したい場合は、ちょうど2色を同じ色に設定することができ、デフォルトのカラーシステムprimaryColor

AppUpgrade.appUpgrade(context, _checkAppInfo(),
    okBackgroundColors: [Colors.blue, Colors.lightBlue],
    ...
)

プログレスバーの色を設定します。

AppUpgrade.appUpgrade(context, _checkAppInfo(),
    progressBarColor: Colors.lightBlue.withOpacity(.4),
    ...
)

アップグレード半径バルーンを設定し、デフォルトは20です。

AppUpgrade.appUpgrade(context, _checkAppInfo(),
    borderRadius: 15,
    ...
)

環境上の理由から、現在のソースコードもgithubのパブに公開することができない、オープンソースは、もちろん、私はソースコードを取得するには、「アップグレードフラッター」返信、公共の数に焦点を当てることができ、フォローアップとなります。

苦労よりも目の前だけでなく、詩に住んで、一緒に学び、一緒に進行し、「遠い。」:フラッターマイクロ手紙交換基(laomengitマイクロ手紙)へようこそ!

個人的に、私あなたが公共の数を心配していることを非常に多くの希望、ああ、あなたを待って、さまざまな利点があります。

おすすめ

転載: www.cnblogs.com/mengqd/p/12520036.html