微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Xamarin Shell:在参数中传递大量数据

如何解决Xamarin Shell:在参数中传递大量数据

在我的Xamarin项目中有两个页面PageA选择一组记录,PageB应该接收选定的数据。

据我所知,在Xamarin Shell中将参数传递到另一个页面,我应该使用参数,就像在Web应用程序中使用它们一样。

Shell.Current.GoToAsync($"{pageBUri}?param1=value1&param2=value2");

就我在PageA上的情况而言,显示了许多记录(约百甚至更多)。用户可以点击“全选”以将选择的内容传递给PageB

我的担忧:如果我从这些选定的记录中获得GUIDs并通过参数将这些指导作为大量数据传递,那么在不同的实际设备上工作是否是一种可靠的解决方案?

对于Web应用程序,取决于浏览器,带有参数的uri大小是有限制的。我认为Xamarin Shell也有这样的限制。可能没有记录(我没有找到)。

我的问题:通过Shell参数传递一大段文字是个好主意,还是最好使用诸如全局单例剪贴板对象之类的东西,将大量数据与guid关联,放入此cliboard中,并且仅将此Guid传递给PageB

假设我已声明一个接口IGlobalClipboard,并已将其实现注册为具有IoC容器的单例。

然后使用以下方法

PageA视图模型:

IGlobalClipboard clipboard = IoC.GetService<IGlobalClipboard>();
Guid key = Guid.NewGuid();
clipboard.put(key,largeDataBlock);

PageB视图模型:

[QueryProperty(nameof(DataBlockKey),nameof(DataBlockKey))]
...

public string DataBlockKey { get; set; }

...

IGlobalClipboard clipboard = IoC.GetService<IGlobalClipboard>();
Guid key = Guid.ParseGuid(DataBlockKey);
var largeDataBlock = clipboard.get(key);
clipboard.remove(key);

...

您认为哪种方法更好?使用查询参数,即使有大量数据,还是使用如上所述的全局剪贴板对象?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。