我有点困惑。任何人都可以确切地解释两者之间的区别是什么?我们什么时候应该使用 MAUI,什么时候使用 UNO?正如我意识到的,两者都可以运行在不同的平台上,那么同时引入两种不同的技术的原因是什么?它们可以在 Windows 7 上运行吗?或者它们仅限于 Windows 10?我的 WPF 程序可以使用这两种技术在 Linux 上运行吗?
在 Uno Platform for WebAssembly 中实现 URL 深度链接的任何线索或方向?
我看到它是在以下项目中实现的,这些项目可以在https://platform.uno/showcases/上找到
项目:
有谁知道当前是否可以从编译成wasm的C#中调用C ++(或者更精确地说是Uno Platform应用程序)?
我对WebAssembly相当陌生,但是我设法将C ++函数编译为wasm并从JavaScript调用它。我还从Uno获得了一个快速入门项目(该项目可让您将用C#/ XAML编写的UWP应用编译为wasm并在浏览器中运行)。
我每天都用C#和C ++编写程序,但是我不知道是“两种语言之间的互操作” + WebAssembly组合。我假设我需要将两种语言的代码编译为2个单独的wasm文件,然后以某种方式将它们链接在一起或在运行时加载C ++。今天我什至想做些什么吗?
编辑:要明确:的想法是所有代码最终都将编译为wasm。
重现:
下载https://github.com/nventive/Uno.QuickStart
添加名为TestMe的.NETStandard2_0项目.
在MyApp.Droid项目中引用TestMe.
构建MyApp.Droid会带来编译错误:
System.InvalidOperationException:项目TestMe未提供任何元数据引用.这可能是由于路径无效,例如在csproj中使用$(SolutionDir); 尝试使用相对路径.这也可能与缺少的默认配置指令有关.有关更多详细信息,请参阅Uno.SourceGenerator Readme.md文件.at Uno.SourceGeneration.Host.SourceGeneratorHost.d__4.MoveNext()in C:\ projects\uno-sourcegeneration\src\Uno.SourceGenerationHost.Shared\SourceGeneratorHost.cs:line 303 MyApp.Droid
我已经尝试将TestMe.csproj更改为
<TargetFrameworks>net461;netstandard2.0</TargetFrameworks>
Run Code Online (Sandbox Code Playgroud)
要么
<TargetFrameworks>net47;netstandard2.0</TargetFrameworks>
Run Code Online (Sandbox Code Playgroud)
没有成功.
这个问题有解决方法吗?
总的来说,我对 Uno Platform 和 WebAsssembly 很陌生,但认为它有巨大的潜力!
有没有办法从 WebAssembly 中运行的 Uno Platform 应用程序读取浏览器的地址栏并与之交互(类似于 HTML5 的history
对象?)。我见过的例子并没有这样做。
例如:用户输入:http://myUnoApp.com/home
我可以阅读该/home
部分吗?或者,如果他转到我的应用程序的“主页”页面,我可以将浏览器的地址栏设置为吗http://myUnoApp.com/home
?我可以读取历史记录,这样如果他按下浏览器的后退按钮,我的应用程序就知道去哪里吗?
我从模板创建了新的 Uno Cross-Platform App 2.2。当我在代码视图中打开 Shared->MainPage.xaml 时没有打开设计器,出现下划线错误The type 'page' does not support direct content
<Page
x:Class="App6.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:App6"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<TextBlock Text="Hello, world!" Margin="20" FontSize="30" />
</Grid>
</Page>
Run Code Online (Sandbox Code Playgroud) 我今天偶然发现了 Uno,我一直在试图弄清楚这个平台是否更能满足我们的需求。我们有一个 WPF 应用程序,我们想要制作一个 Web 版本,并使用 Blazor WASM,我们能够展示如何重用我们拥有的大多数 C# 业务逻辑并用 HTML/CSS 替换 XAML。我们的应用程序需要连接到通过 Rest API 为其提供数据的外部硬件(同时也是 WASM 的 Web 服务器)。如果我们将来需要本机访问,它还将使我们能够使用多平台。距离午夜还有 2 分钟,随着 Dotnet 6 的发布,我即将开始向 HTML/CSS 过渡。
从今天早上开始,我一直在想知道 Uno 是否允许我们保留我们拥有的大部分 WPF?有多少 WPF XAML 可以重用?全部、部分、没有?在过渡过程中我们是否会失去组件设计的 CSS 灵活性?Uno 能否将运行时生成的 XAML 元素处理为 WASM?Blazor WASM 可以在 MAUI 中与 Webview2 一起重用,原生应用程序的 Uno 版本是更好的选择吗?UWP 是一个可靠的途径吗?作为一个框架,我的意思是它似乎是 Uno 的基础?看起来 MAUI 和 Uno 正在走平行的道路,是否有潜在的合并或其中一个消亡?
希望有人可以帮助更好地理解其中的区别。我很感激任何反馈:)。
目前,我正在开发一个 UNO 平台应用程序,它应该以 .html 格式显示动态创建的 HTML 代码WebView
。这在 UWP 和 Android 上运行良好,但在编译的WebAssembly
. 我可以在这里使用某种解决方法吗?我想到了一个简单的IFRAME
,但显然不可能在 XAML 文件中包含 HTML。还是我错了?
更具体地说:WebView 的NavigateToString("<html><head></head><body>BLAH!</body><html>")
方法会在 UWP 和 Android(iOS 未测试)中产生所需的结果。
在我们的设置中,我们在嵌入式 Linux 目标上运行 .net 5 应用程序。将来我们可能想在 Windows 系统上运行它。对于用户界面,我们正在评估 uno 平台。因为我们希望用户界面可以远程使用,所以我尝试在目标上运行 uno web assembly。
我已经在 VS Code 中创建了项目,如https://platform.uno/docs/articles/get-started-vscode.html中所述。该应用程序按照网站上的描述在本地运行。Program.cs 是
using System;
using Windows.UI.Xaml;
namespace Terminal.Uno.Wasm
{
public class Program
{
private static App _app;
static int Main(string[] args)
{
Windows.UI.Xaml.Application.Start(_ => _app = new App());
return 0;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我已经更新了用于远程部署和调试的 json 文件。这有效,应用程序启动并且调试器将自身定位在入口点上。
一旦我执行 Main 的第一行,我就会得到异常
Unhandled exception. System.Security.SecurityException: ECall methods must be packaged into a system module.
at WebAssembly.Runtime.NetCoreInvokeJS(String str, Int32& exceptionResult)
at WebAssembly.Runtime.InvokeJS(String str)
at Uno.Foundation.WebAssemblyRuntime.InnerInvokeJS(String str) …
Run Code Online (Sandbox Code Playgroud) 我已经度过了周末,但仍然无法让“Hello, World”工作。视觉工作室:
2022 Version 17.0.4
2022 Preview Version 17.1.0 Preview 1.1
Run Code Online (Sandbox Code Playgroud)
WUX 或 MUX(UWP 或桌面)风格的 WinUI 都不起作用。Android 模拟器即将推出,但 Hello World 未部署。已检测到本地 Android 设备,但未部署。Linux (Skia.GTK) 不工作。
WASM 能够显示文本“Hello, World”。
哇!看完最近的版本 4 发布发布会的每一分钟,我都感到很兴奋。但如果让事情运行起来就这么困难……?
我决心让它发挥作用……但这似乎是一个主要的、没有成效的项目。世界上只有我一个人有困难吗?
标记