NFCLockDemoMaui/NFCLockDemoV2/MainPage.xaml.cs
2026-01-26 14:13:15 +08:00

73 lines
1.9 KiB
C#

using NFCLockDemoV2.ViewModels;
#if IOS
using Foundation;
using NFCManager = NfcLock.Ios.Binding.NFCManager;
#endif
namespace NFCLockDemoV2;
public partial class MainPage : ContentPage
{
private MainViewModel _mainMainViewModel;
#if IOS
private void SetNFCCallbacks()
{
NFCManager.SetLoopCbWithCb();
NFCManager.SetFinishedCbWithCb(() =>
{
System.Diagnostics.Debug.WriteLine("finished");
_mainMainViewModel.DeviceId = "--";
_mainMainViewModel.DeviceRssi = "--";
_mainMainViewModel.DeviceStatus = "NFC操作完成";
_mainMainViewModel.Operation = null;
_mainMainViewModel.ArcProgress = 0;
});
NFCManager.SetChargingCbWithCb((NSString res, int level) =>
{
System.Diagnostics.Debug.WriteLine($"res: {res}, level: {level}");
_mainMainViewModel.UpdateMessage($"充电中({level}%)");
_mainMainViewModel.ArcProgress = level;
});
NFCManager.SetControllingCbWithCb((NSString res, int progress) =>
{
System.Diagnostics.Debug.WriteLine($"res: {res}, progress: {progress}");
_mainMainViewModel.UpdateMessage($"控制中({progress}%)");
});
}
#endif
public MainPage(MainViewModel mainViewModel)
{
InitializeComponent();
_mainMainViewModel = mainViewModel;
BindingContext = _mainMainViewModel;
}
protected override void OnAppearing()
{
base.OnAppearing();
#if IOS
SetNFCCallbacks();
#endif
}
private void LockClicked(object? sender, EventArgs e)
{
#if IOS
NFCManager.LockWithPassword(_mainMainViewModel.Password);
NFCManager.StartScan();
#endif
}
private void UnlockClicked(object? sender, EventArgs e)
{
#if IOS
NFCManager.UnlockWithPassword(_mainMainViewModel.Password);
NFCManager.StartScan();
#endif
}
}