- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试使用以下方法,但它们在 Uno (Android) 中都显示为未实现。我能做什么?
是否有任何 Xamarin.Essentials 替代品?
或其他NuGet 包?
或者我应该在每个平台上使用本地实现吗?
是否有可能直接在 Uno 中实现?
var pdfFile = StorageFile.GetFileFromApplicationUriAsync(..);
pdfFile.CopyAsync(..);
(await pdfFile.OpenReadAsync()).AsStreamForRead(); // AsStreamForRead() not implemented
我使用的是 Uno.UI v1.45.0。
最佳答案
作为大卫·奥利弗 pointed out in his answer ,
Uno hasn't implemented most of the Windows.StorageFile APIs, as for the most part there are alternatives available in System.IO, which will work cross-platform.
所以...
要从应用程序包中打开文件,我们可以将其构建操作设置为Embedded Resource
而不是Content
。我们可以使用以下代码代替 StorageFile.GetFileFromApplicationUriAsync()
方法:
public Stream GetStreamFromResourceFile(string filename, Type callingType = null)
{
var assembly = (callingType ?? GetType()).Assembly;
string foundResourceName = assembly.GetManifestResourceNames().FirstOrDefault(r => r.EndsWith(filename, StringComparison.InvariantCultureIgnoreCase));
if (foundResourceName == null)
throw new FileNotFoundException("File was not found in application resources. Ensure that the filename is correct and its build action is set to 'Embedded Resource'.", filename);
return assembly.GetManifestResourceStream(foundResourceName);
}
复制一个文件
await pdfFile.CopyAsync(..);
我们改为:
await pdfFile.CopyToAsync(newFile);
并获取流以供阅读
(await pdfFile.OpenReadAsync()).AsStreamForRead();
我们使用:
File.OpenRead(pdfFile);
所以最后我们有:
string filename = "File.pdf";
var pdfFile = GetStreamFromResourceFile(filename, GetType());
string newFilePath = Path.Combine(ApplicationData.Current.LocalFolder.Path, filename);
using (var newFile = File.Create(newFilePath))
{
await pdfFile.CopyToAsync(newFile);
}
var fileStream = File.OpenRead(newFilePath);
关于uno-platform - GetFileFromApplicationUriAsync、CopyAsync、AsStreamForRead 未在 Uno 平台中实现。解决方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58131778/
我正在尝试编写一个程序来列出网络上所有设备的 IP 地址。其主要组成部分之一是能够 ping 设备。这个程序必须在 Linux、Windows 和 Mac 上运行,所以我选择了 Boost 库。 我设
如果我使用 Google 的 Jquery 加载脚本链接,那么如果用户的缓存中已经有该文件,那么当页面加载时,用户计算机是否仍会以任何方式与 Google 联系? 例子: 最佳答案 根据浏览器的缓存
我想在我的 ruby 代码中 ping 一个站点,发现 net-ping 是一个很好的库来执行此操作。不幸的是,当我尝试 gem install net-ping 时出现以下错误: C:>gem
我有一个表(test_matches),其中记录了几场比赛的结果,按日期排序。 GHFT = 目标主队全职。GAFT = 全职客场进球队。 CREATE TABLE `test_matches` (
我正在使用 phing对于一个项目的一些自动构建过程,我想知道:我怎样才能通过电子邮件获得完整的日志? 当我通过命令行启动 phing 时,会显示构建日志;我想要它: 通过电子邮件发送, 给几个收件人
尝试根据 GF 和 GA 创建一个新列“Results”。想知道如何通过定义函数和条件语句来做到这一点。以下是我对一行的初步尝试,但无法弄清楚如何将其应用于所有行,非常感谢您的帮助! 日期地点对手GF
我是一名优秀的程序员,十分优秀!