在我当前的 Xamarin.Forms 项目中,我为不同的需求创建了许多渲染器。现在 9 月毛伊岛即将到来,我们必须将我们的项目迁移到那里。那么渲染器会发生什么?它会按原样工作还是我们不需要渲染器?
如何在 VS2022 中发布 Android 应用程序?我从“Android 应用程序(预览)”模板开始。一切在模拟器中运行良好。单击项目上的“发布”时,只会创建一个 *.nupgk。单击“查看存档...”时,会显示解决方案,但唯一的文本是“没有可用的存档版本”,而且我没有看到任何创建存档的选项。
编辑:通过发布我的意思是创建可以安装的 *.apk。我不需要发布到 Google Play 或任何其他商店。
我创建了一个简单的应用程序,其中有很多按钮,并且我想为所有按钮创建一次单击事件,那么 xamarin 表单或 .net maui 中的逻辑是什么?
在 WPF 中,以下代码打开一个新窗口。
Window abc = new Window();
abc.Show();
Run Code Online (Sandbox Code Playgroud)
但对于 MAUI 窗口,我找不到显示选项。如何在 MAUI 中打开窗口?
我有来自为 Xamarin.Android(不是 Forms)编写的示例应用程序的现有代码。我需要在为 .NET MAUI(所有 Xamarin 的继承者)编写的新应用程序中使用它。它使用 BroadcastReceiver 来了解 USB 设备何时与手机分离。但这在毛伊岛不起作用。
这是旧代码:
public partial class MainPage : ContentPage
{
private BroadcastReceiver detachedReceiver;
public MainPage()
{
InitializeComponent();
}
protected override void OnAppearing()
{
base.OnAppearing();
OnScanClicked(this, EventArgs.Empty);
// TODO: Fix for MAUI
//register the broadcast receivers
detachedReceiver = new UsbDeviceDetachedReceiver(this);
RegisterReceiver(detachedReceiver, new IntentFilter(UsbManager.ActionUsbDeviceDetached));
}
protected override void OnDisappearing()
{
base.OnDisappearing();
CloseDevice();
// TODO: Fix for MAUI
var temp = detachedReceiver; // copy reference for thread safety
if (temp != null)
UnregisterReceiver(temp);
} …Run Code Online (Sandbox Code Playgroud) 所以我只是尝试 .NET MAUI/Blazor Hybrid。
我按照 .NET MAUI 指南来设置我的 TabBar,结果如下所示:
但是,我需要将每个选项卡链接到剃刀页面,因此 ContentTemplate="{DataTemplate local:Home}" 例如不起作用。
有人知道我如何将每个选项卡链接到剃刀页面吗?
System.Net.WebException:
java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.'
Run Code Online (Sandbox Code Playgroud)
这是我的 VS2022 解决方案在使用自签名证书和 Android 时出现的错误。
案例如下:
它是一个在本地网络上运行的 Android 应用程序,具有本地 https 后端服务。域管理员已为此服务颁发了证书。但是,该域不是官方 CA(证书颁发机构)。然后,您必须通过设置手动安装 CA。
解决方案的一部分
我为解决此问题所做的是将 CA 证书添加到 Android 设备(通过“设置”>“安全”->“加密和凭据”->“安装证书”)。
Android 应用程序中的 Web 浏览器现在可以成功访问 https 站点,而不会出现警告。
我仍然需要帮助,
但是除非通过网络安全配置进行配置,否则无法通过应用程序访问 CA 商店: https://developer.android.com/training/articles/security-config#TrustingAdditionalCas
这是可以在 Xamarin 时代完成的事情,例如:
但在MAUI我有点迷失,我没有看到合适的资源,mipmap等。
我想用这样的一句话来解决这个问题:
[程序集:应用程序(UsesCleartextTraffic = true)]
...也可以通过网络安全配置进行配置。
是否有一句话或者有人可以帮助我配置我的网络安全配置以使 CA 商店在 MAUI 解决方案中可用?
.Net Maui ContentPage文档提供了一个 XAML 示例。但没有 c# 示例。
如何仅使用 C# 创建 ContentPage?
我面临的问题是 iOS 上的 MAUI 应用程序启动比 Android 或 Windows 上慢得多。
部署是使用 Visual Studio 版本 17.3.0 Preview 1.1 完成的,我尝试创建和部署一个新项目,而不进行任何添加。
iOS 上的启动(iPhone、iPad 已更新至最新操作系统版本) > 10 秒
Android < 2 秒
Windows < 2 秒
找不到与此相关的任何资源。
使用 Visual Studio 17.2 构建和部署的 PS Xamarin Forms 普通应用程序速度更快,在相同设备上不到 4 秒。
我的接收 Viewmodel (QuestionsPageViewModel) 在通过 Shell 导航传递 TopidId 后未收到 TopidId,如下面的代码所示。我已将断点放置在 QuestionsPageViewModel 中的 LoadQuestions 方法处。调用时TopicId为null。我缺少什么?
主页视图模型
//This is in a command executed after clicking a button. And this is working fine
await Shell.Current.GoToAsync($"{nameof(QuestionsPage)}?TopicId={pack.TopicId}");
Run Code Online (Sandbox Code Playgroud)
问题页面视图模型
[INotifyPropertyChanged]
[QueryProperty(nameof(TopicId), nameof(TopicId))]
public partial class QuestionsPageViewModel
{
public ObservableRangeCollection<Question> QuestionsList { get; set; } = new();
[ObservableProperty]
string? title;
[ObservableProperty]
public string topicId;
public QuestionsPageViewModel()
{
LoadQuestions();
}
async void LoadQuestions()
{
Title = Utilities.ConvertTopicIdToString(short.Parse(TopicId));
try
{
using (var context = new DataContext())
{
QuestionPack questionPack = …Run Code Online (Sandbox Code Playgroud)