Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रणाली >> Android

इन-ऐप अपडेट: Flutter उपयोगकर्ताओं को नए संस्करणों की प्रभावी ढंग से सूचना कैसे दें

जब आप अपने एप्लिकेशन का एक नया संस्करण रोल आउट करते हैं, तो आप चाहते हैं कि आपके उपयोगकर्ता इसके बारे में जानें। चाहे आपने एक महत्वपूर्ण बग ठीक किया हो, एक नई सुविधा जोड़ी हो, या एप्लिकेशन बस सुचारू या तेज चलता हो - उन्हें जानने की आवश्यकता है।

एप्लिकेशन डेवलपर्स के रूप में, हम अपने सभी उपयोगकर्ताओं को हमारे एप्लिकेशन के सबसे हाल के संस्करण का उपयोग करते देखना चाहते हैं।

लेकिन हम कैसे सुनिश्चित कर सकते हैं कि उपयोगकर्ता हमारे एप्लिकेशन के एक नए संस्करण के बारे में जानते हैं?

उस प्रश्न का उत्तर काफी सरल है: जब एप्लिकेशन का एक नया संस्करण जारी होता है तो उन्हें सूचित क्यों न करें?

आप इसे विभिन्न तरीकों से कर सकते हैं:

  • पुश नोटिफिकेशन का उपयोग करें
  • उन्हें बताएं जब एप्लिकेशन लॉन्च होता है

हम इस लेख में पुश नोटिफिकेशन से नहीं निपटेंगे। इसके बजाय हम इस पर ध्यान केंद्रित करेंगे कि आप कैसे (एक या दो पैकेज का उपयोग करके) अपने उपयोगकर्ताओं को एक डायलॉग दिखा सकते हैं जो उन्हें सूचित करता है कि एप्लिकेशन का एक नया संस्करण जारी है और अपडेट से कैसे निपटें।

रुको, क्या यह पहले से शामिल नहीं है?

आप सोचेंगे कि इस तरह की कार्यक्षमता पहले से ही आधुनिक मोबाइल OS सिस्टम में शामिल होनी चाहिए। और आप सही होंगे - लेकिन केवल Android के लिए।

iOS वर्तमान में डेवलपर्स को यह देखने की क्षमता नहीं देता है कि क्या एप्लिकेशन का एक नया संस्करण है और उपयोगकर्ताओं को इसके बारे में सूचित करें। Android में, आपके पास In-App Update लाइब्रेरी है जो Google Play लाइब्रेरी का हिस्सा है।

इसके कारण, और क्योंकि Flutter दोनों प्लेटफॉर्म का समर्थन करता है, मैं आपके एप्लिकेशन के संस्करण अपडेट को संभालने में आपकी सहायता करने वाले दो प्रमुख पैकेजों पर जाने जा रहा हूं:

  1. Upgrader
  2. In App Update

दोनों आपको वांछित परिणाम दे सकते हैं, लेकिन वे इसमें व्यापक रूप से भिन्न हैं कि वे इसे कैसे करते हैं।

इससे पहले कि हम शुरू करें, यह समझना महत्वपूर्ण है कि आपके पास एप्लिकेशन का एक संस्करण होना चाहिए जिसे सीधे Google Play Store से इंस्टॉल किया गया था. यह आवश्यक है क्योंकि दोनों पैकेज Google Play Services और एप्लिकेशन के मालिक को सत्यापित करने की इसकी क्षमता पर भरोसा करते हैं।

यदि आप ऐसा करने में विफल रहते हैं, तो आप पैकेज में से एक का उपयोग करने का प्रयास करते समय निम्न त्रुटि देखेंगे:

_Install Error(-10): The app is not owned by any user on this device. An app is "owned" if it has been acquired from Play. (https://developer.android.com/reference/com/google/android/play/core/install/model/InstallErrorCode#ERROR_APP_NOTOWNED)

In App Update पैकेज का उपयोग कैसे करें

शुरुआत में ही आपको पता होना चाहिए कि यह पैकेज केवल Android पर काम करेगा। ऐसा इसलिए है क्योंकि यह अपने आंतरिक कामकाज के लिए इन ऐप अपडेट लाइब्रेरी पर निर्भर करता है।

यह पैकेज मूल रूप से Android लाइब्रेरी के लिए एक रैपर है। नीचे इसके उजागर API मेथड्स हैं:

  • Future<AppUpdateInfo> checkForUpdate(): जांचता है कि क्या कोई अपडेट उपलब्ध है
  • Future<AppUpdateResult> performImmediateUpdate(): तत्काल अपडेट करता है (फुल-स्क्रीन)
  • Future<AppUpdateResult> startFlexibleUpdate(): लचीला अपडेट शुरू करता है (बैकग्राउंड डाउनलोड)
  • Future<void> completeFlexibleUpdate(): वास्तव में एक उपलब्ध लचीला अपडेट इंस्टॉल करता है

✋ यदि आप तत्काल अपडेट या लचीले अपडेट के बीच अंतर के बारे में अधिक पढ़ना चाहते हैं, तो यहां जाएं।

पैकेज कैसे सेट करें

सबसे पहले, पैकेज को अपने pubspec.yaml फाइल में जोड़ें:

dependencies: flutter: sdk: flutter in_app_update: ^3.0.0 

फिर pub get करें।

अपने एप्लिकेशन के अंदर, जहां आप इन ऐप अपडेट को संभालने के लिए लॉजिक करने का इरादा रखते हैं, निम्नलिखित आयात जोड़ें:

import 'package:in_app_update/in_app_update.dart'; 

हमें पहले लॉजिक जोड़ने की आवश्यकता होगी जो जांचता है कि हमारे एप्लिकेशन में कोई अपडेट है या नहीं। ऐसा करने के लिए, हम checkForUpdate मेथड का उपयोग करेंगे। इसका रिटर्न मान एक Future है जिसमें ऐप अपडेट की उपलब्धता और प्रगति के बारे में जानकारी होती है।

हम updateAvailability प्रॉपर्टी का उपयोग करके जांच सकते हैं कि कोई अपडेट उपलब्ध है या नहीं। यदि कोई अपडेट उपलब्ध है, तो इसका मान UPDATE_AVAILABLE होगा। तो, आपका मेथड इस तरह दिख सकता है:

InAppUpdate.checkForUpdate().then((updateInfo) { if (updateInfo.updateAvailability == UpdateAvailability.updateAvailable) { // अपडेट करने का लॉजिक } }); 

अगला, हमें यह तय करने की आवश्यकता है कि हम किस प्रकार का अपडेट ट्रिगर करना चाहते हैं - या तो लचीला या तत्काल अपडेट।

तत्काल अपडेट के लिए जाना आपके उपयोगकर्ताओं के लिए महत्वपूर्ण एप्लिकेशन अपडेट के लिए आरक्षित होना चाहिए। इसका मतलब एक ऐसा संस्करण हो सकता है जो एक महत्वपूर्ण बग को ठीक करता है या एक नई सुविधा प्रदान करता है।

तत्काल अपडेट शुरू करने के लिए, हम performImmediateUpdate मेथड का उपयोग कर सकते हैं। यह मेथड एक AppUpdateResult एनम लौटाता है जो आपको बताता है कि अपडेट सफल रहा या नहीं।

इस मेथड को कॉल करने से पहले हमें यह जांचने की आवश्यकता है कि क्या हमें तत्काल अपडेट चलाने की अनुमति है। हम AppUpdateInfo ऑब्जेक्ट पर immediateUpdateAllowed फ्लैग को एक्सेस करके ऐसा करते हैं।

यदि हम एक लचीला अपडेट ट्रिगर करना चाहते हैं, तो हम startFlexibleUpdate मेथड का उपयोग करते हैं। यह बैकग्राउंड में चलता है और तत्काल अपडेट मेथड के समान। यह भी एक AppUpdateResult एनम लौटाता है।

यदि इस परिदृश्य में अपडेट सफल रहा, तो हमें अपने एप्लिकेशन में अपडेट इंस्टॉल करने के लिए completeFlexibleUpdate मेथड को कॉल करने की आवश्यकता है।

तो, यदि हम ऊपर दिए गए कोड स्निपेट को देखते हैं और विभिन्न प्रकार के अपडेट के लिए लॉजिक जोड़ते हैं, तो यह इस तरह दिखेगा:

InAppUpdate.checkForUpdate().then((updateInfo) { if (updateInfo.updateAvailability == UpdateAvailability.updateAvailable) { if (updateInfo.immediateUpdateAllowed) { // तत्काल अपडेट करें InAppUpdate.performImmediateUpdate().then((appUpdateResult) { if (appUpdateResult == AppUpdateResult.success) { // ऐप अपडेट सफल } }); } else if (updateInfo.flexibleUpdateAllowed) { // लचीला अपडेट करें InAppUpdate.startFlexibleUpdate().then((appUpdateResult) { if (appUpdateResult == AppUpdateResult.success) { // ऐप अपडेट सफल InAppUpdate.completeFlexibleUpdate(); } }); } } }); 

Upgrader पैकेज का उपयोग कैसे करें

पहले विकल्प के विपरीत, यह iOS और Android दोनों के लिए एक समाधान प्रदान करता है। यह स्टोर से डेटा एकत्र करने और इसे एप्लिकेशन से वर्तमान डेटा के विरुद्ध जांचने पर निर्भर करता है।

डेटा क्वेरी करने के लिए API होने के बजाय, इस पैकेज में विजेट्स हैं जो हुड के तहत लॉजिक करते हैं।

पैकेज कैसे सेट करें

सबसे पहले, पैकेज को अपने pubspec.yaml फाइल में जोड़ें:

dependencies: flutter: sdk: flutter upgrader: ^5.0.0 

फिर pub get करें।

अपने एप्लिकेशन के अंदर, जहां आप इन ऐप अपडेट को संभालने के लिए लॉजिक करने का इरादा रखते हैं, निम्नलिखित आयात जोड़ें:

import 'package:upgrader/upgrader.dart'; 

इन दो विकल्पों के बीच मुख्य अंतर सिर्फ एक UI है, इसलिए वह चुनें जो आपके लिए सबसे उपयुक्त हो।

इस पैकेज को एकीकृत करने के लिए, आपको अपने बॉडी विजेट को या तो UpgradeAlert या UpgradeCard के साथ लपेटना होगा। नीचे एक उदाहरण है:

class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: applicationName, home: UpgradeAlert( /// <------------------ child: MainPage( key: Key("YOUR_KEY"), title: applicationName ), ) ); } } 

यदि स्टोर में आपके एप्लिकेशन का एक नया संस्करण उपलब्ध है, तो आप यह देखेंगे:

इन-ऐप अपडेट: Flutter उपयोगकर्ताओं को नए संस्करणों की प्रभावी ढंग से सूचना कैसे दें

चीजों को टेस्ट करने के लिए, सुनिश्चित करें कि आप इसे जोड़ते हैं:

await Upgrader.clearSavedSettings() 

अपने main.dart फाइल में मुख्य मेथड के अंदर।

बस इतना आप जानते हैं, Upgrader पैकेज के लिए आप बहुत सारे कॉन्फ़िगरेशन सेट कर सकते हैं। मैं अत्यधिक अनुशंसा करता हूं कि आप जाएं और उन्हें देखें।

पैकेज का टेस्ट कैसे करें

चाहे आप किस पैकेज के साथ काम करना चुनते हैं, आपको यह जानना होगा कि आपका लॉजिक ठीक से काम करता है।

लेकिन आप आधिकारिक संस्करण जारी किए बिना ऐसा कैसे कर सकते हैं? आप Google Play Console में आंतरिक टेस्टिंग विकल्प का उपयोग कर सकते हैं। अपने एप्लिकेशन के एक नए संस्करण को आंतरिक टेस्टर्स के लिए जारी करके, यह सार्वजनिक नहीं होगा और आपको अपग्रेड कार्यक्षमता का टेस्ट करने की अनुमति देगा।

यहां आपको क्या करने की आवश्यकता है:

  1. अपने Google Play Console खाते में लॉग इन करें और उस एप्लिकेशन में जाएं जिस पर आप अपडेटिंग लॉजिक रखने के लिए काम कर रहे हैं
  2. Setup → Internal App Sharing के तहत, Manage Testers पर जाएं और सुनिश्चित करें कि टेस्टर्स को शेयर्ड एप्लिकेशन डाउनलोड और इंस्टॉल करने की अनुमति है। आप लिंक या ईमेल के माध्यम से ऐसा करना चुन सकते हैं।

इन-ऐप अपडेट: Flutter उपयोगकर्ताओं को नए संस्करणों की प्रभावी ढंग से सूचना कैसे दें

  1. फिर, Testing → Internal Testing पर जाएं और Create new release बटन (ऊपर दाएं) पर क्लिक करें।

इन-ऐप अपडेट: Flutter उपयोगकर्ताओं को नए संस्करणों की प्रभावी ढंग से सूचना कैसे दें

  1. एक बार जब आप एक रिलीज कर लेते हैं, तो आप मुख्य Internal Testing पेज पर वापस जा सकते हैं और Testers टैब पर क्लिक कर सकते हैं। वहां आपको टेस्टर ईमेल वाली एक सूची दिखाई देगी (अभी खाली)। नीले तीर आइकन पर क्लिक करें।

इन-ऐप अपडेट: Flutter उपयोगकर्ताओं को नए संस्करणों की प्रभावी ढंग से सूचना कैसे दें

  1. इस स्क्रीन पर आप खुद को आंतरिक टेस्टर के रूप में जोड़ सकते हैं (Add email addresses में)।

इन-ऐप अपडेट: Flutter उपयोगकर्ताओं को नए संस्करणों की प्रभावी ढंग से सूचना कैसे दें

  1. जब आप कर लेते हैं, तो आप Internal Testing विंडो पर वापस जा सकते हैं। नीचे स्क्रॉल करें और आप How testers join your test देखेंगे और आपको एक Copy link बटन दिखाई देगा।

अब आप बटन पर क्लिक कर सकते हैं और खुद को लिंक भेज सकते हैं ताकि आप अपने एप्लिकेशन का नया संस्करण डाउनलोड कर सकें।

यदि आप उपरोक्त चरणों में से किसी एक को करने में विफल रहते हैं, तो उत्पन्न लिंक एक नॉट फाउंड (Error 404) पेज पर ले जाएगा:

इन-ऐप अपडेट: Flutter उपयोगकर्ताओं को नए संस्करणों की प्रभावी ढंग से सूचना कैसे दें

यदि आपने सब कुछ सफलतापूर्वक किया, तो जब आप उत्पन्न लिंक पर क्लिक करेंगे तो आप निम्नलिखित देखेंगे:

इन-ऐप अपडेट: Flutter उपयोगकर्ताओं को नए संस्करणों की प्रभावी ढंग से सूचना कैसे दें

यदि आप यह त्रुटि देखते हैं:

_Install Error(-6): The download/install is not allowed, due to the current device state (e.g. low battery, low disk space, …). (https://developer.android.com/reference/com/google/android/play/core/install/model/InstallErrorCode#ERROR_INSTALL_NOTALLOWED)

इसका मतलब हो सकता है कि आप अपने एप्लिकेशन को एक एमुलेटेड डिवाइस पर चला रहे हैं और आपको इस पर Google Play Store इंस्टॉल करने और लॉग इन करने की आवश्यकता है।

समापन

मैंने यह लेख लिखा क्योंकि मुझे अपने एप्लिकेशन के साथ इन ऐप अपडेट पैकेज को एकीकृत करते समय उसी प्रक्रिया से गुजरना पड़ा।

आप Google Play Store पर इसे देख सकते हैं:

इन-ऐप अपडेट: Flutter उपयोगकर्ताओं को नए संस्करणों की प्रभावी ढंग से सूचना कैसे दें

और संपूर्ण सोर्स कोड यहां देखें:

पढ़ने के लिए धन्यवाद!

मुफ्त में कोड करना सीखें। freeCodeCamp का ओपन सोर्स पाठ्यक्रम 40,000 से अधिक लोगों को डेवलपर्स के रूप में नौकरी पाने में मदद कर चुका है। शुरू करें

  1. मैक पर डिस्क अनुमतियों की मरम्मत कैसे करें मैक पर डिस्क अनुमतियों की मरम्मत कैसे करें

    लंबे समय से macOS (या OS X) उपयोगकर्ता डिस्क अनुमतियों की मरम्मत जैसे शब्दों से परिचित हैं, जो अक्सर मैक के समस्या निवारण के दौरान सामने आता है। अधिक बार नहीं, यह समस्या निवारण विधि पहले आती है, क्योंकि इसके माध्यम से जाना काफी आसान है और अक्सर सफल परिणाम दे सकता है। हालांकि, डिस्क अनुमतियों की मरम्

  1. विंडोज 11 में फाइल एक्सप्लोरर टैब सक्रिय करें - चरण-दर-चरण मार्गदर्शिका (2022) विंडोज 11 में फाइल एक्सप्लोरर टैब सक्रिय करें - चरण-दर-चरण मार्गदर्शिका (2022)

    जब माइक्रोसॉफ्ट ने रिलीज प्रीव्यू चैनलों में विंडोज 11 22H2 जारी किया, तो उत्साहित होने के लिए बहुत सी चीजें थीं। बिल्कुल नए अपडेट ने टास्कबार के लिए ड्रैग और ड्रॉप सपोर्ट, कई मॉनिटर पर घड़ी प्रदर्शित करने की क्षमता, और फाइल एक्सप्लोरर में टैब जैसी सभी प्रतीक्षित सुविधाएं लाईं। यह सुविधा डार्क मोड क

  1. विंडोज 11/10 में रिटेल डेमो अनुभव को हटाएं या सक्षम करें विंडोज 11/10 में रिटेल डेमो अनुभव को हटाएं या सक्षम करें

    विंडोज 11 और विंडोज 10 में एक रिटेल डेमो अनुभव मोड शामिल है। यह सुविधा मूल रूप से रिटेल स्टोर कर्मचारियों के लिए उपयोगी है और उन ग्राहकों को विंडोज 11/10 का डेमो दिखाने के लिए है। नोट: यह पोस्ट केवल जानकारी उद्देश्यों के लिए है, और हम सलाह नहीं देते कि आप इस रिटेल डेमो मोड को चालू करें या आज़माएं क्