0

提供用に Google のライブラリを実装しており、 Google Play ストアからIn-App updates受け取ることができます。と の両方を1 つのアプリに実装したいと考えています。しかし、私はそうする方法を見つけることができません。アプリ内更新ライブラリは、単なる整数である VersionCode に基づいてチェックを実行します。柔軟な更新と即時更新のどちらを使用するかを決定するための戦略を立てる方法はありますか?In-App updatesImmediate updateFlexible update

4

1 に答える 1

1

そのため、彼らは私たちの話を聞いており、Android Dev Summit '19 で聞いたように、すぐに解決策を考え出しています。

問題:

appUpdateManager.appUpdateInfo.addOnSuccessListener{ info ->
    if(info.updateAvailability == UpdateAvailability.UPDATE_AVAILABLE){
        // Which trigger should I trigger: Flexible or Immediate
    }
}

開発者として、戦略を決定するための 2 つのシグナルがあります。

1. 優先度シグナル:更新の重要度を表します。優先度の値は、リリースを作成する際に私たちが定義します。この優先度の値は、Play Core API を介してアプリに公開されます。

例:

appUpdateManager.appUpdateInfo.addOnSuccessListener{ info ->
    if(info.updateAvailability == UpdateAvailability.UPDATE_AVAILABLE){
        if(info.updatePriority() > 3 && info.isUpdateAllowed(AppUpdateType.IMMEDIATE)){
            // trigger Immediate flow
        }
        else if(info.isUpdateAllowed(AppUpdateType.FLEXIBLE)){
            // trigger Flexible flow
        }
    }
}

リリースを行う間、優先度を整数値として設定します。たとえば、0 ~ 5 の範囲です。私たちのアプリでは、たとえば 3 というしきい値を設定し、優先度が 3 より大きい場合は即時更新をトリガーし、それ以外の場合は柔軟な更新をトリガーするように決定木を構築します。

2. Staleness Signal:デバイスが更新について認識している期間を表します。

例:

appUpdateManager.appUpdateInfo.addOnSuccessListener{ info ->
    if(info.updateAvailability == UpdateAvailability.UPDATE_AVAILABLE){
        if(info.clientVersionStalenessDays() > 90 && info.isUpdateAllowed(AppUpdateType.IMMEDIATE)){
            // trigger Immediate flow
        }
        else if(info.clientVersionStalenessDays() > 30 && info.isUpdateAllowed(AppUpdateType.FLEXIBLE)){
            // trigger Flexible flow
        }
    }
}

彼らは、この機能はまもなく利用可能になると述べました。

ここで完全なビデオを確認してください: https://youtu.be/_o_q6hatcIs?t=566

于 2019-12-19T10:03:56.300 に答える