Saya memiliki aplikasi di Google Play Store. Jika versi pembaruan tersedia, versi yang lebih lama akan menjadi tidak dapat digunakan - yaitu, jika pengguna tidak memperbarui aplikasi, mereka tidak masuk ke dalam aplikasi. Bagaimana cara memaksa pengguna untuk memperbarui aplikasi ketika versi baru tersedia?
102
Jawaban:
Saya setuju dengan poin Scott Helme dalam jawaban lain di sini. Namun dalam beberapa situasi ekstrim (masalah keamanan, perubahan yang merusak API ...) di mana Anda benar-benar membutuhkan pengguna untuk memperbarui untuk terus menggunakan aplikasi, Anda dapat menyediakan API pembuatan versi sederhana. API akan terlihat seperti ini:
versionCheck API:
Parameter permintaan:
int appVersion
Tanggapan
boolean forceUpgrade
boolean recommendUpgrade
Saat aplikasi Anda dimulai, Anda bisa memanggil API ini yang diteruskan dalam versi aplikasi saat ini, dan memeriksa respons dari panggilan API pembuatan versi.
Jika
forceUpgrade
adalahtrue
, menunjukkan dialog popup dengan pilihan baik membiarkan pengguna keluar dari aplikasi, atau pergi ke Google Play Store untuk meng-upgrade aplikasi.Lain jika
recommendUpgrade
tidaktrue
, tampilkan dialog pop-up dengan opsi untuk memperbarui atau terus menggunakan aplikasi.Bahkan dengan kemampuan peningkatan paksa ini, Anda harus terus mendukung versi yang lebih lama, kecuali benar-benar diperlukan.
sumber
coba ini: Pertama, Anda perlu melakukan panggilan permintaan ke tautan playstore, ambil versi saat ini dari sana, lalu bandingkan dengan versi Anda saat ini.
sumber
Anda tidak boleh berhenti mendukung versi lama segera setelah versi baru keluar. Ini akan menghasilkan pengalaman pengguna yang buruk. Saya tidak tahu ada vendor perangkat lunak yang melakukan ini, untuk alasan yang bagus.
Apa yang terjadi jika pengguna tidak dapat memperbarui atau tidak menginginkannya pada saat itu? Mereka tidak bisa menggunakan aplikasi Anda, itu buruk.
Google tidak memberikan opsi apa pun untuk pelacakan versi seperti itu sehingga Anda harus menggulungnya sendiri. Layanan web sederhana untuk mengembalikan versi langsung saat ini yang dapat diperiksa oleh aplikasi Anda sudah cukup. Anda kemudian dapat memperbarui versi dan aplikasi akan tahu bahwa itu sudah usang. Saya hanya akan merekomendasikan penggunaan ini untuk memberi tahu pengguna Anda bahwa ada pembaruan lebih cepat daripada bergantung pada Google Play. Ini seharusnya tidak benar-benar digunakan untuk mencegah aplikasi bekerja, hanya untuk meminta pengguna memperbarui.
sumber
Solusi dari tim Google
Mulai dari Android 5.0 yang mudah dicapai melalui mekanisme pembaruan Google Play In App yang baru. Persyaratannya adalah memiliki pustaka Play Core versi 1.5.0+ dan menggunakan idstribution App Bundle, bukan apks.
Pustaka memberi Anda 2 cara berbeda untuk memberi tahu pengguna tentang pembaruan:
Fleksibel, ketika pengguna dapat terus menggunakan aplikasi saat sedang diperbarui di latar belakang.
Segera - layar pemblokiran yang tidak mengizinkan pengguna untuk masuk ke aplikasi sampai mereka memperbaruinya.
Ada langkah selanjutnya untuk menerapkannya:
Semua implementasi langkah ini dijelaskan secara detail di situs resmi: https://developer.android.com/guide/app-bundle/in-app-updates
sumber
Jawaban Scott dan Michael benar. Host layanan yang memberikan nomor versi min yang Anda dukung dan bandingkan dengan versi yang diinstal. Anda semestinya tidak perlu menggunakan ini, tetapi ini adalah penyelamat jika beberapa versi di luar sana Anda benar-benar harus membunuh karena beberapa cacat serius.
Saya hanya ingin menambahkan kode untuk apa yang harus dilakukan selanjutnya. Inilah cara Anda kemudian meluncurkan Google Play Intent dan membawanya ke versi baru Anda di toko setelah meminta pengguna bahwa mereka harus meningkatkan.
Anda harus mempertimbangkan kembali desain Anda jika Anda harus memaksakan peningkatan pada setiap rilis.
sumber
Google memperkenalkan lib pembaruan dalam aplikasi, ( https://developer.android.com/guide/app-bundle/in-app-updates ) itu bekerja di Lollipop + dan memberi Anda kemampuan untuk meminta pengguna untuk pembaruan dengan baik dialog (FLEKSIBEL) atau dengan pesan layar penuh wajib (SEGERA).
Anda perlu menerapkan yang terakhir. Berikut tampilannya:
Saya membahas semua kode dalam jawaban ini: https://stackoverflow.com/a/56808529/5502121
sumber
Secara resmi google menyediakan API Android untuk ini.
API Pembaruan tersedia sekarang - https://developer.android.com/guide/app-bundle/in-app-updates
sumber
Saya sangat merekomendasikan untuk memeriksa fungsi Remote Config Firebase untuk ini.
Saya menerapkannya menggunakan parameter - app_version_enabled - dengan kondisi "Versi Android Nonaktif" yang terlihat seperti ini:
Default untuk parameternya adalah "true", tetapi Versi Android yang Dinonaktifkan memiliki nilai false. Di regex saya untuk Versi Android yang Dinonaktifkan, Anda dapat menambahkan lebih banyak versi yang dinonaktifkan hanya dengan yang lain
|{version name}
di dalam tanda kurung tersebut.Kemudian saya hanya memeriksa apakah konfigurasi mengatakan versi diaktifkan atau tidak - Saya memiliki aktivitas yang saya luncurkan yang memaksa pengguna untuk meningkatkan. Saya memeriksa di hanya dua tempat aplikasi dapat diluncurkan dari eksternal (aktivitas peluncur default saya dan aktivitas penanganan maksud). Karena Remote Config bekerja pada basis cache, Remote Config tidak akan langsung menangkap versi aplikasi yang "dinonaktifkan" jika waktu yang diperlukan belum berlalu untuk cache menjadi tidak valid, tetapi itu paling lama 12 jam jika Anda melewatinya nilai kedaluwarsa cache yang direkomendasikan.
sumber
periksa kode versi apk lokal dan play store
menerapkan kelas untuk pemeriksaan versi
kotak dialob untuk pembaruan
tata letak dialog
sumber
Lebih baik menentukan proses kita sendiri untuk peningkatan.
Android & iOS: Jika versi aplikasi terbaru tersedia maka itu akan menampilkan peringatan sebagai "Versi terbaru tersedia dengan lebih banyak fitur, Untuk meningkatkan klik tombol upgrade" (Peringatan dengan tombol "Upgarde" dan "Tidak. Terima kasih".) Kemudian aplikasi akan dialihkan ke playstore / Appstore dan itu akan membuka versi terbaru.
Sebelum proses Upgrade pastikan Anda menangani proses migrasi db dengan benar jika ada perubahan skema db.
sumber
Untuk memaksa pengguna aplikasi memperbarui jika pembaruan tersedia di pasar, Anda harus terlebih dahulu memeriksa versi aplikasi di pasar dan membandingkannya dengan versi aplikasi di perangkat. Jika berbeda, mungkin ada pembaruan yang tersedia. Dalam posting ini saya menuliskan kode untuk mendapatkan versi pasar saat ini dan versi saat ini di perangkat dan membandingkannya bersama. Saya juga menunjukkan cara menampilkan dialog pembaruan dan mengarahkan pengguna ke halaman pembaruan. Silakan kunjungi tautan ini: https://stackoverflow.com/a/33925032/5475941 Pastikan bahwa dalam dialog Anda hanya menampilkan tombol pembaruan pengguna dan jangan tampilkan tombol batal kepadanya. Dalam hal ini, dia akan dipaksa untuk memperbarui, sebelum dia dapat menggunakan aplikasi tersebut.
sumber
Apa yang pasti harus disebutkan di sini adalah API Pembaruan Dalam Aplikasi yang akan segera dirilis .
sumber
Sebaiknya gunakan konfigurasi jarak jauh untuk versi aplikasi dan selalu periksa aktivitas peluncuran apakah versi aplikasi saat ini sama dengan versi jarak jauh atau tidak jika tidak memaksa pembaruan dari toko aplikasi ..
Logika sederhana selamat coding ..
https://firebase.google.com/docs/remote-config/android
sumber
Anda dapat menggunakan pembaruan dalam aplikasi Play Core Library untuk mengatasi ini. Anda dapat memeriksa ketersediaan pembaruan dan menginstalnya jika tersedia dengan mulus.
Pembaruan dalam aplikasi tidak kompatibel dengan aplikasi yang menggunakan file perluasan APK (file .obb). Anda dapat memilih unduhan yang fleksibel atau pembaruan langsung yang akan ditangani oleh Google Play untuk mengunduh dan menginstal pembaruan untuk Anda.
Lihat jawaban ini https://stackoverflow.com/a/58212818/7579041
sumber
Anda dapat melakukan ini dengan melakukan pencocokan antara nomor versi yang disimpan pada aplikasi dalam variabel dan demikian pula versi aplikasi saat ini disimpan di sisi server dan setiap kali pengguna membuka aplikasi, permintaan pertama harus dikirim untuk memeriksa apakah itu ditemukan pencocokan tidak melakukan apa pun, cukup biarkan pengguna menggunakan aplikasi Anda, jika tidak, jalankan maksud ke google playstore atau buka jendela tampilan web ke aplikasi Anda (window.open (" https://play.google.com/store/apps/details?id= package_name ", '_system', 'location = yes');) dan di sana mereka akan secara otomatis memiliki tombol yang meminta pembaruan, itulah yang dilakukan google playstore untuk Anda jika Anda tidak mengaktifkan pembaruan otomatis.
sumber
Anda dapat memberi tahu pengguna Anda bahwa ada versi baru dari aplikasi saat ini yang tersedia untuk diperbarui. Selain itu, jika kondisi ini benar, Anda dapat memblokir login di aplikasi.
Silakan lihat apakah ini memberi Anda solusi.
sumber
Nah, mungkin ada banyak solusi untuk masalah ini seperti menyalin kode versi dari Halaman Aplikasi (halaman Aplikasi Google Play), dll.
Tetapi saya akan menunjukkan kepada Anda solusi pamungkas yang tidak memerlukan biaya sepeser pun dan akan bekerja seperti sulap.
panel Config
Bandingkan dengan kode versi aplikasi saat ini, yang bisa Anda dapatkan dengan kode berikut
}
Jika kode versi yang diambil lebih besar dari versi saat ini, tampilkan AlertDialog yang meminta untuk memperbarui aplikasi. Jika tidak, aplikasi sudah diperbarui.
Jadi, setiap kali Anda meluncurkan versi baru, Anda harus meletakkan kode versi baru itu di panel konfigurasi Firebase Remote
Anda dapat membaca seluruh tutorial tentang cara memaksa pengguna untuk mengupdate aplikasi menggunakan Firebase Remote Config
sumber
Google merilis Pembaruan Dalam Aplikasi untuk perpustakaan Play Core.
Saya mengimplementasikan perpustakaan ringan untuk dengan mudah mengimplementasikan pembaruan dalam aplikasi. Anda dapat menemukan tautan berikut ini contoh tentang cara memaksa pengguna untuk melakukan pembaruan.
https://github.com/dnKaratzas/android-inapp-update#forced-updates
sumber
var activeVersion = "3.9.2";
var currentVersion = "3.9.1";
var activeVersionArr = activeVersion.split ("."); var currentVersionArr = currentVersion.split (".");
var bandingkanArray = JSON.stringify (activeVersionArr) == JSON.stringify (currentVersionArr);
if (bandingkanArray) {return false; }
if (! bandingkanArray) {untuk (var i = 0; i <activeVersionArr.length; i ++) {
if (activeVersionArr [i]! == currentVersionArr [i]) {
if (activeVersionArr [i]> currentVersionArr [i]) { kembali benar; } lain {return false; }
}}}
sumber