आवश्यकताएँ
- एक Mellowtel खाता और डैशबोर्ड से इंटीग्रेशन ID। प्रत्येक डेस्कटॉप ऐप को अपनी अनूठी इंटीग्रेशन ID मिलती है।
- .NET 10 SDK
- Windows 10 या Windows 11
- एक .NET डेस्कटॉप एप्लिकेशन (कंसोल, WPF, या Windows फॉर्म्स)
क्या आप इसे अपने ऐप में वायर करने से पहले एक पूर्ण, वास्तविक दुनिया का इंटीग्रेशन देखना चाहते हैं? mellowtel-pomodoro-windows WPF नमूना संपूर्ण प्रवाह दिखाता है: सहमति संवाद, सेटिंग्स टॉगल, और बैकग्राउंड जीवनचक्र।
इंस्टॉलेशन
Windows के लिए Mellowtel NuGet परMellowtel.Win के रूप में उपलब्ध है।
1. पैकेज इंस्टॉल करें
अपने प्रोजेक्ट डायरेक्टरी से:.csproj में एक PackageReference जोड़ें:
2. अपने कोड में जोड़ें
YOUR_INTEGRATION_ID को अपने Mellowtel डैशबोर्ड से प्राप्त इंटीग्रेशन ID से बदलें, और PluginId को अपने ऐप के लिए एक स्थिर पहचानकर्ता पर सेट करें। ShowConsentDialog() आपकी अपनी UI है जो केवल तब true लौटाती है जब उपयोगकर्ता स्पष्ट रूप से सहमत होता है। नीचे उपयोगकर्ता सहमति देखें।कॉन्फ़िगरेशन विकल्प
MellowtelOptions आपको कुछ चीजों को ट्यून करने देता है:
| प्रॉपर्टी | प्रकार | डिफ़ॉल्ट | विवरण |
|---|---|---|---|
PluginId | string | "mellowtel-win" | आपके ऐप के लिए स्थिर पहचानकर्ता। इसे कुछ अनूठा सेट करें। |
MaxDailyRate | int | बिल्ट-इन डिफ़ॉल्ट | अधिकतम अनुरोध जो SDK प्रतिदिन संभालेगा। |
DisableLogs | bool | true | विकास के दौरान SDK लॉग्स सक्षम करने के लिए false पर सेट करें। |
एप्लिकेशन प्रकार के अनुसार उदाहरण
- कंसोल ऐप
- WPF ऐप
- Windows फॉर्म्स
कनेक्शन स्थिति का अवलोकन
Mellowtel इंस्टेंस एक ConnectionStateChanged इवेंट को उजागर करता है जो हर बार फायर होता है जब Mellowtel के बैकएंड के लिए अंतर्निहित वेब सॉकेट कनेक्ट या डिस्कनेक्ट होता है। ऊपर दिए गए WPF और Windows फॉर्म्स उदाहरण इसे एक स्थिति संकेतक चलाने के लिए सब्सक्राइब करते हैं। पेलोड एक bool है जहां true का मतलब कनेक्टेड है और false का मतलब डिस्कनेक्टेड है।
यह इवेंट एक बैकग्राउंड थ्रेड पर फायर होता है, इसलिए UI फ्रेमवर्क जो थ्रेड एफिनिटी को लागू करते हैं, उन्हें UI थ्रेड पर अपडेट्स को मार्शल करना चाहिए। WPF में Dispatcher.Invoke का उपयोग करें, और Windows फॉर्म्स में Control.Invoke का उपयोग करें (दोनों ऊपर दिए गए उदाहरणों में दिखाए गए हैं)।
WPF
async void OnClosing पैटर्न के बारे में। ऊपर दिया गया WPF उदाहरण protected override async void OnClosing का उपयोग करता है, जो सबसे सरल रूप है लेकिन इसमें एक सूक्ष्म समस्या है: base.OnClosing(e) को सिंक्रोनसली कॉल किया जाता है जबकि StopAsync() अभी भी प्रतीक्षा कर रहा है, इसलिए विंडो सफाई समाप्त होने से पहले बंद हो सकती है। अधिकांश ऐप्स के लिए यह ठीक है क्योंकि प्रक्रिया तुरंत बाद में समाप्त हो जाती है। यदि आपको एक गारंटीड ग्रेसफुल शटडाउन की आवश्यकता है (उदाहरण के लिए, टेलीमेट्री को फ्लश करने के लिए), तो Microsoft द्वारा प्रलेखित डिफरल पैटर्न का पालन करें जहां आप e.Cancel = true सेट करते हैं, अपने असिंक्रोनस कार्य का await करते हैं, और फिर विंडो को स्पष्ट रूप से बंद करते हैं।उपयोगकर्ता सहमति
आपकी सहमति संवाद में क्या शामिल होना चाहिए
समझाएं कि Mellowtel क्या करता है
साधारण भाषा का उपयोग करें। उदाहरण: “यह ऐप आपके अप्रयुक्त इंटरनेट बैंडविड्थ को साझा करने के लिए Mellowtel का उपयोग करता है। इससे आपको [लाभ/विशेषता] मिलती है। आप किसी भी समय सेटिंग्स में ऑप्ट-आउट कर सकते हैं।”
नीतियों के लिए लिंक शामिल करें
सेवा की शर्तें और गोपनीयता नीति के लिंक शामिल करें।
उपयोगकर्ताओं को सेटिंग्स में अपनी सहमति बदलने दें
GetOptInDetails() ऑप्ट-इन स्थिति के साथ-साथ ऑप्ट-इन और ऑप्ट-आउट टाइमस्टैम्प लौटाता है:
समस्या निवारण
"पैकेज नहीं मिला" त्रुटि
"पैकेज नहीं मिला" त्रुटि
- सुनिश्चित करें कि आपका प्रोजेक्ट .NET 10 या बाद के संस्करण को लक्षित करता है।
Mellowtel.Winकोnet10.0की आवश्यकता है। - NuGet कैश को साफ़ करें और पुनर्स्थापित करें:
"InvalidOperationException: उपयोगकर्ता ने ऑप्ट-इन नहीं किया है"
"InvalidOperationException: उपयोगकर्ता ने ऑप्ट-इन नहीं किया है"
StartAsync() को स्पष्ट सहमति की आवश्यकता होती है। जब आपकी सहमति संवाद सकारात्मक परिणाम लौटाता है, तो OptIn() कॉल करें, फिर StartAsync() कॉल करें। बाद के लॉन्च पर चुपचाप फिर से शुरू करने के लिए, इसके बजाय StartIfOptedInAsync() का उपयोग करें, जो तब एक नो-ऑप है जब उपयोगकर्ता ने ऑप्ट-इन नहीं किया है।पूरा करने का अनुमानित समय: 10-15 मिनट। यदि आपको सहायता की आवश्यकता है या आपके पास कोई प्रतिक्रिया है, तो हमसे info@mellowtel.com पर संपर्क करें या हमारे Discord समुदाय में शामिल हों।