इसके लिए एक सरल उपाय है। DependencyService का उपयोग करके आप आसानी से Android और iOS दोनों में टोस्ट-लाइक दृष्टिकोण प्राप्त कर सकते हैं।
अपने सामान्य पैकेज में एक इंटरफ़ेस बनाएँ।
public interface IMessage
{
void LongAlert(string message);
void ShortAlert(string message);
}
Android अनुभाग
[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();
}
}
}
iOS अनुभाग
आईओएस में टोस्ट जैसा कोई देशी समाधान नहीं है, इसलिए हमें अपने दृष्टिकोण को लागू करने की आवश्यकता है।
[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);