अपने क्रॉस-प्लेटफ़ॉर्म इलेक्ट्रॉन एप्लिकेशन में Mellowtel को एकीकृत करें ताकि उपयोगकर्ता अपने अप्रयुक्त इंटरनेट बैंडविड्थ को पुरस्कार या प्रीमियम सुविधाओं के बदले में साझा कर सकें। इलेक्ट्रॉन SDK कहीं भी चलता है जहाँ इलेक्ट्रॉन चलता है (macOS, Windows, और Linux)।Documentation Index
Fetch the complete documentation index at: https://docs.mellowtel.com/llms.txt
Use this file to discover all available pages before exploring further.
आवश्यकताएँ
- एक Mellowtel खाता और कॉन्फ़िगरेशन कुंजी (अपनी डैशबोर्ड से प्राप्त करें)।
- मुख्य प्रक्रिया तक पहुँच के साथ एक इलेक्ट्रॉन एप्लिकेशन।
स्थापना
1. npm प्रमाणीकरण कॉन्फ़िगर करें
अपने प्रोजेक्ट की रूट डायरेक्टरी में एक.npmrc फ़ाइल बनाएँ ताकि npm को Mellowtel GitHub पैकेज रजिस्ट्री पर इंगित किया जा सके और इंस्टॉल को प्रमाणित किया जा सके:
YOUR_NPM_TOKEN को नीचे दिए गए इंस्टॉल टोकन से बदलें। प्रकट करने के लिए क्लिक करें, फिर इसे अपने क्लिपबोर्ड पर कॉपी करने के लिए कोड ब्लॉक पर कॉपी आइकन का उपयोग करें।
इंस्टॉल टोकन प्रकट करें
इंस्टॉल टोकन प्रकट करें
2. पैकेज इंस्टॉल करें
अपने प्रोजेक्ट रूट से, इलेक्ट्रॉन SDK इंस्टॉल करें:3. अपने कोड में जोड़ें
अपने इलेक्ट्रॉन मुख्य प्रक्रिया फ़ाइल (आमतौर परmain.ts या main.js) में, SDK को आयात करें, इसे अपनी कॉन्फ़िगरेशन कुंजी के साथ इंस्टेंटिएट करें, उपयोगकर्ता से सहमति का अनुरोध करें, और फिर सेवा शुरू करने के लिए init() को कॉल करें।
YOUR_CONFIGURATION_KEY को अपनी Mellowtel डैशबोर्ड से प्राप्त कुंजी से बदलें।new Mellowtel(configurationKey, options?)SDK को इंस्टेंटिएट करता है। आज उपलब्ध एकमात्र विकल्पdisableLogsहै, जो डिफ़ॉल्ट रूप सेtrueहोता है। इसेfalseपर सेट करें जबकि एकीकृत कर रहे हों ताकि आप अपने टर्मिनल में कनेक्शन स्थिति और अनुरोध गतिविधि देख सकें।requestConsent(window, incentive)एक मूल इलेक्ट्रॉन संदेश बॉक्स प्रस्तुत करता है जिसे आप पास करते हैंBrowserWindowसे एंकर किया गया है। दूसरा तर्क संवाद का प्रमुख शीर्षक है (उदाहरण के लिए,"3 महीने मुफ्त प्राप्त करें"), जो Mellowtel क्या करता है की एक निश्चित व्याख्या के ऊपर दिखाया गया है। यहtrueपर हल करता है यदि उपयोगकर्ता स्वीकार करता है,falseयदि उपयोगकर्ता अस्वीकार करता है या संवाद बंद करता है, औरundefinedयदि सहमति पहले से ही फाइल पर है। SDK स्वचालित रूप से ऑप्ट-इन निर्णय को बनाए रखता है, इसलिए आपको बाद मेंoptIn()को कॉल करने की आवश्यकता नहीं है।init()केवल तब फेंकता है जबconfigurationKeyखाली होता है। यदि उपयोगकर्ता ने ऑप्ट-इन नहीं किया है, तो यह लॉग करता है और चुपचाप लौटता है। अन्यथा यह Mellowtel के बैकएंड को एक वेब सॉकेट खोलता है। कॉल रेंडरर UI के लिए गैर-अवरोधक है, इसलिए विंडो कनेक्शन स्थापित होने के दौरान उत्तरदायी रहती हैं।
सिस्टम डायलॉग रुकावटों को रोकना (अनुशंसित)
SDK एक वैकल्पिक हेल्पर के साथ आता है,setupMellowtelApp(), जो इलेक्ट्रॉन कमांड-लाइन फ्लैग्स को कॉन्फ़िगर करता है ताकि सिस्टम डायलॉग्स (ऑटोफिल पॉपअप्स, अनुवाद बार्स, NTLM / Kerberos प्रमाणीकरण प्रॉम्प्ट्स, पासवर्ड मैनेजर एकीकरण, मीडिया ओवरले, पहली बार चलने वाले डायलॉग्स) को दबाया जा सके जो अन्यथा आपके उपयोगकर्ताओं को तब बाधित करेंगे जब Mellowtel की छिपी हुई विंडो पृष्ठभूमि में अनुरोधों को संसाधित करती हैं।
इसे अपनी मुख्य प्रक्रिया फ़ाइल के शीर्ष पर कॉल करें, app.whenReady() से पहले, और इसे @mellowtel-inc/mellowtel-electron से डिफ़ॉल्ट निर्यात के साथ आयात करें। अपस्ट्रीम README में कैनोनिकल उपयोग देखें।
उपयोगकर्ता सहमति
सहमति को संभालने के लिए आपके पास दो मार्ग हैं:- बिल्ट-इन मूल संवाद का उपयोग करें
requestConsent(window, incentive)के माध्यम से। यह सबसे तेज़ मार्ग है और यही ऊपर का स्निपेट दिखाता है। यह आपके प्रोत्साहन कॉपी को शीर्षक के रूप में और उपयोगकर्ता के निर्णय को स्वचालित रूप से बनाए रखने के लिए एक मूल इलेक्ट्रॉनdialog.showMessageBoxप्रस्तुत करता है। - अपना स्वयं का सहमति UI बनाएं और
optIn(),optOut(), औरgetOptInStatus()के माध्यम से SDK को चलाएं। इसका उपयोग करें यदि आप कस्टम ब्रांडिंग, अधिक समृद्ध व्याख्याएँ, या मूल संवाद की तुलना में अधिक स्थानीयकरण चाहते हैं।
आपकी सहमति संवाद में क्या शामिल होना चाहिए
Mellowtel क्या करता है समझाएँ
सरल भाषा का उपयोग करें। उदाहरण: “यह ऐप आपके अप्रयुक्त इंटरनेट बैंडविड्थ को साझा करने के लिए Mellowtel का उपयोग करता है। बदले में, आपको [लाभ/सुविधा] मिलती है। आप किसी भी समय सेटिंग्स में ऑप्ट आउट कर सकते हैं।”
नीतियों के लिए लिंक करें
सेवा की शर्तें और गोपनीयता नीति के लिंक शामिल करें।
उपयोगकर्ताओं को बाद में अपनी सहमति बदलने दें
Mellowtel एक बिल्ट-इन सेटिंग्स संवाद प्रदान करता हैshowConsentSettings(window) के माध्यम से। यह एक मूल संवाद प्रस्तुत करता है जिसमें ऑप्ट इन / ऑप्ट आउट बटन होते हैं जो उपयोगकर्ता की वर्तमान स्थिति से मेल खाते हैं, और आंतरिक रूप से optIn() या optOut() (प्लस ऑप्ट-इन पर वेब सॉकेट को फिर से कनेक्ट करना) को कॉल करता है जब उपयोगकर्ता टॉगल करता है। इसे अपने ऐप में एक मेनू आइटम या सेटिंग्स बटन से जोड़ें ताकि उपयोगकर्ता अपने विकल्प पर पुनर्विचार कर सकें।
यदि आप अपनी स्वयं की सेटिंग्स स्क्रीन बनाना पसंद करते हैं, तो वर्तमान स्थिति को पढ़ने के लिए getOptInStatus() को कॉल करें और इसे बदलने के लिए optIn() / optOut() को कॉल करें।
विधि संदर्भ
Mellowtel क्लास निम्नलिखित सार्वजनिक विधियों को उजागर करता है। सभी आपके द्वारा new Mellowtel(configurationKey, options?) के साथ बनाए गए इंस्टेंस पर उपलब्ध हैं।
लाइफसाइकल
init(): Promise<void>सेवा शुरू करता है यदि उपयोगकर्ता ने ऑप्ट-इन किया है, या चुपचाप जल्दी लौटता है यदि नहीं। केवल तब फेंकता है जब कॉन्फ़िगरेशन कुंजी खाली होती है।requestConsent(window: BrowserWindow, incentive: string): Promise<boolean | undefined>बिल्ट-इन मूल सहमति संवाद दिखाता है और परिणाम को बनाए रखता है। स्वीकार परtrueलौटाता है, अस्वीकार या बंद परfalse, यदि सहमति पहले से दी गई है तोundefined।showConsentSettings(window: BrowserWindow): Promise<void>बिल्ट-इन प्रबंध-सहमति संवाद दिखाता है। जब उपयोगकर्ता अपने विकल्प को टॉगल करता है तो SDK आंतरिक रूप से ऑप्ट-इन / ऑप्ट-आउट संक्रमणों को संभालता है।
optIn(): Promise<void>उपयोगकर्ता को ऑप्ट-इन के रूप में चिह्नित करता है बिना संवाद दिखाए। इसका उपयोग केवल तब करें जब आपने अपने स्वयं के UI के माध्यम से सहमति एकत्र की हो।optOut(): Promise<void>उपयोगकर्ता को ऑप्ट-आउट के रूप में चिह्नित करता है और सक्रिय वेब सॉकेट कनेक्शन को बंद करता है।getOptInStatus(): boolean | undefinedवर्तमान ऑप्ट-इन स्थिति लौटाता है, याundefinedयदि उपयोगकर्ता ने कभी कोई विकल्प नहीं बनाया है।getNodeId(): stringइस इंस्टॉलेशन के लिए Mellowtel नोड पहचानकर्ता लौटाता है। समर्थन टिकट दाखिल करते समय उपयोगी।
electron-store के माध्यम से संरक्षित की जाती हैं और ऐप पुनरारंभ के बाद भी बनी रहती हैं। यदि आप उपयोगकर्ताओं को उनके ऑप्ट-इन के प्रभाव को दिखाना चाहते हैं तो उन्हें अपने स्वयं के UI में सतह पर लाएँ।
getTotalRequestCount(): numberइंस्टॉल के बाद से संसाधित कुल अनुरोधों को लौटाता है।getDailyRequestCount(): numberआज संसाधित अनुरोधों की संख्या लौटाता है।getRequestCountForDate(date: string): numberएक विशिष्टYYYY-MM-DDतिथि के लिए गणना लौटाता है।getDailyRequestsHistory(): { [date: string]: number }हर दैनिक गणना को एक मानचित्र के रूप में लौटाता है।getRequestCountsInRange(startDate: string, endDate: string): { [date: string]: number }एक तिथि सीमा के लिए गणनाएँ लौटाता है।getRequestCounts(): { total: number; daily: number; dailyHistory: { [date: string]: number } }एक कॉल में सभी तीन काउंटर लौटाता है।
शटडाउन और लाइफसाइकल
इलेक्ट्रॉन SDK अपने स्वयं केbefore-quit या will-quit हैंडलर्स को पंजीकृत नहीं करता है। जब आपका इलेक्ट्रॉन प्रक्रिया समाप्त होती है, तो पृष्ठभूमि वेब सॉकेट कनेक्शन इसके साथ फाड़ दिया जाता है, और आपकी तरफ से कोई स्पष्ट सफाई की आवश्यकता नहीं होती है।
यदि आप मिड-सेशन में Mellowtel को डिस्कनेक्ट करना चाहते हैं (उदाहरण के लिए, जब कोई उपयोगकर्ता आपके ऐप में “विराम” सेटिंग को टॉगल करता है), तो optOut() को कॉल करें। यह ऑप्ट-इन फ्लैग को साफ करता है और सक्रिय कनेक्शन को बंद करता है। पुनः कनेक्ट करने के लिए, optIn() के बाद init() को कॉल करें।
सहमति स्थायित्व
ऑप्ट-इन स्थिति प्लेटफ़ॉर्म-डिफ़ॉल्टelectron-store कॉन्फ़िग पथ में संग्रहीत होती है:
- macOS:
~/Library/Application Support/<YourAppName>/config.json - Windows:
%APPDATA%\<YourAppName>\config.json - Linux:
~/.config/<YourAppName>/config.json
समस्या निवारण
"पैकेज नहीं मिला" त्रुटि इंस्टॉल के दौरान
"पैकेज नहीं मिला" त्रुटि इंस्टॉल के दौरान
- सत्यापित करें कि
.npmrcप्रोजेक्ट रूट में है, आपकेpackage.jsonके बगल में। - सुनिश्चित करें कि टोकन में कोई अग्रणी या पिछला व्हाइटस्पेस नहीं है।
- npm कैश को साफ़ करें और
npm cache clean --forceचलाकर और उसके बादnpm installचलाकर पुनः प्रयास करें।
"अनधिकृत" या 401 इंस्टॉल के दौरान
"अनधिकृत" या 401 इंस्टॉल के दौरान
- सत्यापित करें कि
.npmrcमें टोकन सही और सक्रिय है। यदि आप अनिश्चित हैं, तो info@mellowtel.com से एक नया टोकन अनुरोध करें। - पुष्टि करें कि
@mellowtel-inc:registryपंक्ति मौजूद है औरhttps://npm.pkg.github.com/की ओर इशारा कर रही है।
सहमति संवाद कभी प्रकट नहीं होता
सहमति संवाद कभी प्रकट नहीं होता
- सुनिश्चित करें कि आप
requestConsentकोapp.whenReady()के बाद और एक मान्य, गैर-नष्टBrowserWindowसंदर्भ के साथ कॉल करते हैं। - यदि आप
setupMellowtelApp()का उपयोग करते हैं, तो सत्यापित करें कि इसेapp.whenReady()से पहले कॉल किया गया है, न कि बाद में।
"init() त्रुटियों के बिना चलता है लेकिन कुछ नहीं होता"
"init() त्रुटियों के बिना चलता है लेकिन कुछ नहीं होता"
यह डिज़ाइन द्वारा है।
init() चुपचाप जल्दी लौटता है जब उपयोगकर्ता ने ऑप्ट-इन नहीं किया है। पुष्टि करने के लिए getOptInStatus() की जाँच करें। यदि यह undefined या false लौटाता है, तो पहले requestConsent चलाएँ। ध्यान दें कि आंतरिक “उपयोगकर्ता ऑप्ट-इन नहीं है” लॉग निगल लिया जाता है जब disableLogs को उसके डिफ़ॉल्ट पर छोड़ दिया जाता है (नीचे “लॉग्स चुप हैं” देखें), इसलिए टर्मिनल आपको कोई संकेत नहीं देता है जब तक कि आप उस फ्लैग को फ्लिप नहीं करते।लॉग्स चुप हैं
लॉग्स चुप हैं
disableLogs कंस्ट्रक्टर विकल्प डिफ़ॉल्ट रूप से true है। कनेक्शन स्थिति और अनुरोध गतिविधि को अपने टर्मिनल में सतह पर लाने के लिए एकीकृत करते समय कंस्ट्रक्टर के दूसरे तर्क के रूप में { disableLogs: false } पास करें। यह “ऑप्ट-इन नहीं” चुपचाप नो-ऑप (ऊपर देखें) और वास्तविक कनेक्शन विफलता के बीच अंतर करने का भी सबसे तेज़ तरीका है।समाप्त करने का अनुमानित समय: 10-15 मिनट। यदि आपको सहायता की आवश्यकता है या आपके पास प्रतिक्रिया है, तो हमसे info@mellowtel.com पर संपर्क करें या हमारे Discord समुदाय में शामिल हों।