Skip to main content
دمج Mellowtel في تطبيق سطح المكتب تاعك على Windows باش تخلي المستخدمين يشاركو عرض النطاق الترددي غير المستخدم تاعهم مقابل مكافآت أو ميزات متميزة.
موافقة المستخدم ضرورية. الـ SDK يرمي InvalidOperationException إذا ناديت StartAsync() بلا ما يكون المستخدم موافق.

المتطلبات الأساسية

  • حساب Mellowtel و Integration ID من لوحة التحكم. كل تطبيق سطح المكتب عندو Integration ID خاص بيه.
  • .NET 10 SDK
  • Windows 10 ولا Windows 11
  • تطبيق سطح المكتب .NET (Console، WPF، ولا Windows Forms)
حاب تشوف دمج كامل وواقعي قبل ما تربطو في التطبيق تاعك؟ المثال mellowtel-pomodoro-windows على WPF يوريك العملية كاملة من البداية للنهاية: حوار الموافقة، تبديل الإعدادات، ودورة الحياة في الخلفية.

التثبيت

Mellowtel لـ Windows متوفر في NuGet كـ Mellowtel.Win.

1. تثبيت الحزمة

من دليل المشروع تاعك:
ولا أضف PackageReference إلى .csproj تاعك:

2. أضف إلى الكود تاعك

عوض YOUR_INTEGRATION_ID بـ Integration ID من لوحة التحكم تاع Mellowtel، وحط PluginId كمعرف ثابت للتطبيق تاعك. ShowConsentDialog() هي واجهة المستخدم تاعك اللي ترجع true فقط لما المستخدم يوافق صراحة. شوف موافقة المستخدم تحت.

خيارات التكوين

MellowtelOptions يخليك تضبط بعض الأشياء:
الخاصيةالنوعالافتراضيالوصف
PluginIdstring"mellowtel-win"معرف ثابت للتطبيق تاعك. حطو حاجة فريدة.
MaxDailyRateintالافتراضي المدمجأقصى عدد من الطلبات اللي الـ SDK راح يتعامل معها في اليوم.
DisableLogsbooltrueحطها false باش تفعل سجلات الـ SDK أثناء التطوير.

أمثلة حسب نوع التطبيق

مراقبة حالة الاتصال

الـ Mellowtel عندو حدث ConnectionStateChanged اللي يتفعل كلما يتصل أو ينقطع الـ WebSocket الأساسي مع خادم Mellowtel. الأمثلة على WPF و Windows Forms اللي فوق تشترك فيه باش تدير مؤشر الحالة. الحمولة هي bool وين true يعني متصل و false يعني غير متصل. الحدث يتفعل في خيط خلفي، لذا الإطارات اللي تفرض الانتماء للخيط لازم تنقل التحديثات إلى خيط الواجهة. في WPF استعمل Dispatcher.Invoke، وفي Windows Forms استعمل Control.Invoke (كلاهما موضح في الأمثلة اللي فوق).
حول نمط async void OnClosing في WPF. المثال على WPF اللي فوق يستعمل protected override async void OnClosing، اللي هو الشكل الأبسط لكن عندو مشكلة دقيقة: base.OnClosing(e) يتنادى بشكل متزامن بينما StopAsync() مازال ينتظر، لذا النافذة تقدر تغلق قبل ما يكتمل التنظيف. بالنسبة لمعظم التطبيقات هذا عادي لأن العملية تنتهي مباشرة بعدها. إذا كنت تحتاج إيقاف سلس مضمون (مثال، لإرسال التليمترية)، اتبع نمط التأجيل الموثق من Microsoft وين تحط e.Cancel = true، await العمل غير المتزامن تاعك، ثم تغلق النافذة بشكل صريح.

موافقة المستخدم

عرض حوار الموافقة ضروري. الـ SDK يفرض هذا: StartAsync() يرمي InvalidOperationException إذا المستخدم ما وافقش.

واش لازم يتضمن حوار الموافقة تاعك

1

شرح واش يدير Mellowtel

استعمل لغة بسيطة. مثال: “هذا التطبيق يستعمل Mellowtel لمشاركة عرض النطاق الترددي غير المستخدم تاعك. هذا يخليك تستفيد من [ميزة/فائدة]. تقدر تلغي الاشتراك في أي وقت من الإعدادات.”
2

اعطي المستخدمين اختيار واضح

ضمّن خيارات قبول ورفض واضحة.
3

رابط للسياسات

خلي المستخدمين يغيرو موافقتهم في الإعدادات

لواجهة مستخدم أغنى (مثال، عرض وقت الاشتراك الأول)، GetOptInDetails() ترجع حالة الاشتراك مع تواريخ الاشتراك والإلغاء:

استكشاف الأخطاء وإصلاحها

  1. تأكد أن المشروع تاعك يستهدف .NET 10 أو أحدث. Mellowtel.Win يتطلب net10.0.
  2. امسح ذاكرة التخزين المؤقت لـ NuGet واستعد:
StartAsync() يتطلب موافقة صريحة. ناد OptIn() بعد ما حوار الموافقة تاعك يرجع نتيجة إيجابية، ثم ناد StartAsync(). للاستئناف الصامت في الإطلاقات اللاحقة، استعمل StartIfOptedInAsync() بدلاً من ذلك، اللي ما يدير والو لما المستخدم ما وافقش.

الوقت المقدر للإكمال: 10-15 دقيقة. إذا كنت تحتاج مساعدة أو عندك ملاحظات، تواصل معنا على info@mellowtel.com أو انضم لمجتمعنا على Discord.