如何等待iOS openURL重写方法?

时间:2016-08-29 09:30:45

标签: ios xamarin xamarin.ios

我有一个共享功能,邮件应用程序可以通过单击共享按钮打开我的应用程序。当用户点击来自邮件应用程序的共享时,我可以打开我的应用程序,问题在于OpenUrl方法。

以下是我的OpenUrl方法:

public override bool OpenUrl(UIApplication application, NSUrl url, string sourceApplication, NSObject annotation)
{
    Upload(url);
    return true;
}

async public Task<bool> Upload(NSUrl SharedUri)
{
  //upload 
}

上述代码的问题是因为在上传功能完成应用程序打开之前,不等待Upload功能。

我如何等待OpenUrl中的任务?

1 个答案:

答案 0 :(得分:0)

这里有很多选项,其中一个是返回上传的结果。记得等待上传内的耗时任务。

public override bool OpenUrl(UIApplication application, NSUrl url, string sourceApplication, NSObject annotation)
{
        return this.Upload(url).Result;
}

async public Task<bool> Upload(NSUrl SharedUri)
{
      await SomeUploadTask();
      return true;
}

我同意Sunil的说法,你应该向用户显示一些动作的指示,这是你应该使用的控件:https://developer.xamarin.com/api/type/Xamarin.Forms.ActivityIndicator/