實現(xiàn)帶有異步回調(diào)的Dependency Service

  1. Create interface and method in Forms.

    public interface IShowAlert
    {
         Task<bool> showAlert(string title, string message , string accept, string cancel);
     }
    
  2. Inherit from the interface and implement the method in iOS project

     [assembly: Dependency(typeof(ShowAlert))]
     namespace PPPPCL.iOS
     {
         class ShowAlert : IShowAlert
         {
             public async Task<bool>  showAlert(string title, string message ,string accept, string cancel)
             {    
                 var tcs = new TaskCompletionSource<bool>();
    
                 UIAlertController vc = UIAlertController.Create(title,message, UIAlertControllerStyle.Alert);
    
                 UIAlertAction action = UIAlertAction.Create(accept, UIAlertActionStyle.Default, (e) =>{ tcs.SetResult(true);});
                 vc.AddAction(action);
    
                 UIAlertAction action2 = UIAlertAction.Create(cancel, UIAlertActionStyle.Destructive, (e) => { tcs.SetResult(false);});
                 vc.AddAction(action2);
    
                 (UIApplication.SharedApplication.Delegate as AppDelegate).Window.RootViewController.PresentViewController(vc, true, null);
    
                 return await tcs.Task;
    
             }
         }
     }
    
  3. Call the method and get the value within callback in Forms .

    bool result = await DependencyService.Get<IShowAlert>().showAlert("title","msg","ok","cancel");
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容