এর জন্য একটি সহজ সমাধান রয়েছে। ডিপেন্ডেনসি সার্ভিস ব্যবহার করে আপনি সহজেই অ্যান্ড্রয়েড এবং আইওএস উভয় টোস্টের মতো পদ্ধতির পেতে পারেন।
আপনার সাধারণ প্যাকেজে একটি ইন্টারফেস তৈরি করুন।
public interface IMessage
{
void LongAlert(string message);
void ShortAlert(string message);
}
অ্যান্ড্রয়েড বিভাগ
[assembly: Xamarin.Forms.Dependency(typeof(MessageAndroid))]
namespace Your.Namespace
{
public class MessageAndroid : IMessage
{
public void LongAlert(string message)
{
Toast.MakeText(Application.Context, message, ToastLength.Long).Show();
}
public void ShortAlert(string message)
{
Toast.MakeText(Application.Context, message, ToastLength.Short).Show();
}
}
}
আইওএস বিভাগ
আইওগুলিতে টোস্টের মতো কোনও নেটিভ সমাধান নেই, সুতরাং আমাদের নিজস্ব পদ্ধতির প্রয়োগ করতে হবে।
[assembly: Xamarin.Forms.Dependency(typeof(MessageIOS))]
namespace Bahwan.iOS
{
public class MessageIOS : IMessage
{
const double LONG_DELAY = 3.5;
const double SHORT_DELAY = 2.0;
NSTimer alertDelay;
UIAlertController alert;
public void LongAlert(string message)
{
ShowAlert(message, LONG_DELAY);
}
public void ShortAlert(string message)
{
ShowAlert(message, SHORT_DELAY);
}
void ShowAlert(string message, double seconds)
{
alertDelay = NSTimer.CreateScheduledTimer(seconds, (obj) =>
{
dismissMessage();
});
alert = UIAlertController.Create(null, message, UIAlertControllerStyle.Alert);
UIApplication.SharedApplication.KeyWindow.RootViewController.PresentViewController(alert, true, null);
}
void dismissMessage()
{
if (alert != null)
{
alert.DismissViewController(true, null);
}
if (alertDelay != null)
{
alertDelay.Dispose();
}
}
}
}
দয়া করে নোট করুন যে প্রতিটি প্ল্যাটফর্মে, আমাদের ক্লাসগুলি নির্ভরশীলতা পরিষেবাতে নিবন্ধ করতে হবে।
এখন আপনি আমাদের প্রকল্পের যে কোনও জায়গায় টোস্ট পরিষেবা অ্যাক্সেস করতে পারেন।
DependencyService.Get<IMessage>().ShortAlert(string message);
DependencyService.Get<IMessage>().LongAlert(string message);