我试图放一个背景图片,到目前为止我有这个代码:
<Grid.Background>
<ImageBrush ImageSource="ms-appx:///Assets/Windows-10-Hero-Ninja-Cat-1024x576-03a71eed2a427425.jpg" Stretch="UniformToFill"/>
</Grid.Background>
Run Code Online (Sandbox Code Playgroud)
在Windows 10上以这种方式出现在UWP上:
但是当我构建WASM或Android时,背景图像不会出现.
文件属性设置为Build action:Content,Copy to output directory:不要复制.
使用 uno-check 安装所有必需的先决条件。
之后我安装了 Uno Platform dotnet 模板:
dotnet new -i Uno.ProjectTemplates.Dotnet
并使用以下命令创建一个新项目:
dotnet 新 unoapp-winui -o MyUnoApp
谁给了我一些关于恢复失败的错误(MSBUILD:错误MSB1009 - 项目文件不存在 -)
之后,我在 Visual Studio (2019/2022) 中加载解决方案,选择 MyUnoApp.Windows.Desktop 作为启动项目 (x86) 并启动调试会话,但出现此错误:
UNO.Windows.Desktop.dll 中发生类型为“System.DllNotFoundException”的未处理异常无法加载 DLL“Microsoft.ui.xaml.dll”或其依赖项之一
有什么提示吗?
在常规的 C#/UWP 中,将文件(或资源)的内容读取到字符串变量是可能没有任何(更大的)问题的。UNO 平台的 WebAssembly 构建目标是如何完成的?
我已经尝试过的:例如,根据浏览器的调试控制台,只要我尝试使用反射,我的代码执行就会停止(没有抛出任何异常)。在深入 JavaScript 丛林之前,我决定咨询这里的专家。(作为最后的解决方法,我考虑过使用 HTTP 客户端实现,但只有在确实没有可用的替代方案时我才会这样做。)
我有几个 UWP 应用程序想迁移到 Android。
我已经使用 Xamarin.Forms 迁移了一些我发现 Uno 平台似乎很棒。但是我在使用 Uno Platform 的 Android 项目中没有找到任何关于集成 AdMob 广告的信息。
有没有人做过?
从 uno 平台 WASM 客户端,我尝试调用 ASP.NET Core REST 演示:
[HttpGet]
public IEnumerable<WeatherForecast> Get()
{
var rng = new Random();
return Enumerable.Range(1, 5).Select(index => new WeatherForecast
{
Date = DateTime.Now.AddDays(index),
TemperatureC = rng.Next(-20, 55),
Summary = Summaries[rng.Next(Summaries.Length)]
})
.ToArray();
}
Run Code Online (Sandbox Code Playgroud)
当 wasm 客户端调用其余部分时,我得到 TypeError: Failed to fetch 但这工作得很好 UWP 和控制台应用程序。
客户端正在使用
public async Task<string> RefreshDataAsync(string x)
{
var _client = new HttpClient();
var response = await _client.GetStringAsync(@"http://localhost:58658/weatherforecast");
return response;
}
Run Code Online (Sandbox Code Playgroud)
WASM uno 平台是否支持 REST API 调用?
我一直在寻找 WASM 中发生的错误来解决此错误:
Newtonsoft.Json.JsonSerializationException: Unable to find a constructor to use for type Hqub.MusicBrainz.API.Entities.Recording.
A class should either have a default constructor, one constructor with arguments or a constructor marked with the JsonConstructor attribute. Path 'recordings[0].id', line 1, position 86.
Run Code Online (Sandbox Code Playgroud)
我目前拥有的最好的线索是这篇关于 Xamarin for Android 使用的 Mono 运行时的旧博客文章: ,其中指出:
在项目属性的“Android 选项”选项卡中,有一个“链接器”选项卡。“链接”下拉列表中选定的选项是“仅限 Sdk 程序集”还是“Sdk 和用户程序集”?
如果是后者,则在链接时会跳过无参数构造函数,因为未检测到任何使用。因此将其更改为“Sdk Assemblies only”。
我尝试切换到 System.Text.Json,这会导致类似的错误:
System.NotSupportedException: Deserialization of reference types without parameterless constructor is not supported. Type 'Hqub.MusicBrainz.API.Entities.Recording'
at System.Text.Json.ThrowHelper.ThrowNotSupportedException_DeserializeCreateObjectDelegateIsNull (System.Type invalidType) <0x4b45408 + 0x0004e> in …
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用gRPC-Web制作Uno Platform的示例。
因此我从这篇文章提供的内容中得到了启发。我按照文章的说明创建了一个BlazorApp,它使用gRPC-Web 的天气服务。之后,我还添加了另一个服务,即计数器服务,如gRPC-Web 示例中所示。
一切正常后,我添加了一个Uno Platform WebAssembly应用程序来替换BlazorApp客户端。
当尝试创建应用程序时,GrpcChannel
应用程序会获得一个System.NullReferenceException
.
创建通道的代码片段如下所示:
var baseUri = "https://localhost:44366";
var channel = GrpcChannel.ForAddress(baseUri, new GrpcChannelOptions());
Run Code Online (Sandbox Code Playgroud)
这与BlazorApp中使用的代码完全相同。
BlazorApp和Uno Platform WebAssembly的示例代码可以在此存储库中找到。
任何想法/建议/帮助将不胜感激。