Xamarin.Forms iOS - 即使应用程序当前未处于活动状态或处于后台,当设备获得互联网连接时也会开始上传数据

问题描述 投票:1回答:1

我有一个Xamarin.Forms应用程序,用户创建“列表”,然后将它们发送到服务器(Http api调用)。我们使用的用例是用户创建列表但目前没有互联网连接,因此列表将处于“待处理”状态。然后,用户可以对应用程序进行后台处理(不再有效)。在某些时候,用户现在可以使用互联网连接,我希望应用程序自动发送这些待处理的列表,而无需用户再次打开应用程序。

我目前正在寻找一种在Xamarin.Forms应用程序的iOS实现中的方法,并且还需要做与Android实现类似的操作。

我已经看过iOS的Background Fetch,但是即使我将间隔设置为backgroundfetchminimum,它似乎也很少被调用,所以它可能不够可靠。另外我在iOS文档上读到,PerformFetch上的代码运行时间不应超过30秒,否则会受到“处罚”并限制间隔更多。列表可以附加大型图像或视频,发送所有内容肯定需要30秒以上。

xamarin xamarin.forms xamarin.ios background-process background-fetch
1个回答
0
投票

NSUrlSessionUploadTask处理连接问题。如果上一个任务出错,您还应该实现didCompleteWithError处理程序并再次对同一个上载进行排队。

Rob Gibbens有一个漂亮的github example。他实现了NSUrlSessionDownloadTask,但您将使用相同的方法来使用NSUrlSessionUploadTask。

考虑使用MessagingCenter让您的代码更清洁。

© www.soinside.com 2019 - 2024. All rights reserved.