일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 깃허브
- 애니메이션
- MVVM
- page
- 바인딩
- Firebase
- HTML
- spring boot
- MSSQL
- Maui
- GitHub
- 자바스크립트
- Animation
- listview
- 오류
- 플러터
- 파이어베이스
- React JS
- MS-SQL
- db
- AnimationController
- 마우이
- 닷넷
- typescript
- JavaScript
- .NET
- 함수
- Flutter
- Binding
- 리엑트
Archives
- Today
- Total
개발노트
16. [.NET MAUI] SecureStorage 사용하기(기기에 Key 값 저장) 본문
반응형
SecureStorage 를 사용하면 App 종료 후, 다시 실행했을 때 값을 다시 불러올 수 있다.
데이터 베이스를 거치지않고 값을 불러올 수 있기 때문에 다양한 기능들을 구현 할 수 있다.
- 참고링크: https://docs.microsoft.com/en-us/dotnet/api/xamarin.essentials.securestorage?view=xamarin-essentials
위와 같이 자마린에서는 Xamarin.Essentials를 참조하여 가능하고, MAUI에서는 Microsoft.maui.Essentials 참조로 기능을 사용할 수 있다.
SecureStorage로 App이 종료된 뒤, 다시 실행했을 때, 전에 입력한 Entry Text 값을 확인하는 버튼을 구현해본다.
1. ViewModel에 아래와 같이 커맨드를 작성해준다.
- btn_Submit은 버튼을 클릭했을 때, SecureStorage에 키를 저장하는 Command
- btn_Show는 버튼을 클릭했을 때, SecureStorage의 키에 저장된 값을 불러오는 Command
Page30_ViewModel.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Input;
using AppMaui.Services;
using Microsoft.Maui;
namespace AppMaui.ViewModels
{
internal class Page30_ViewModel : Notify
{
public ICommand btn_Submit { get; set; }
public ICommand btn_Show { get; set; }
public string _Answer { get; set; }
public Page30_ViewModel()
{
}
public Page30_ViewModel(INavigation navigation)
{
btn_Submit = new Command(async() =>
{
//SecureStorage에 "answer"라는 Key 저장
await SecureStorage.SetAsync("answer", Answer);
},
() =>
{
return true;
});
btn_Show = new Command(async () =>
{
//SecureStorage의 "answer"라는 Key의 값을 불러옴
string s = await SecureStorage.GetAsync("answer");
await App.Current.MainPage.DisplayAlert("이전답변", s ,"OK");
},
() =>
{
return true;
});
}
public string Answer
{
get => _Answer;
set
{
if(_Answer != value)
{
_Answer = value;
OnPropertyChanged("Answer");
}
}
}
}
}
1) SecureStorage에 값 저장하기
await SecureStorage.SetAsync("키 이름", "저장 값");
2) SecurStorage에 저장된 값 불러오기
await SecureStorage.GetAsync("키 이름");
2. 마크업 소스에는 특별히 설명할게 없다.
Page30.xaml
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="AppMaui.Page30"
Title="Page30"
BackgroundColor="White">
<NavigationPage.TitleView>
<Label Text="Page30"/>
</NavigationPage.TitleView>
<StackLayout>
<Label Text="1 + 1 =?" FontSize="Title"
VerticalOptions="CenterAndExpand"
HorizontalOptions="CenterAndExpand" />
<Entry x:Name="Entry1" HorizontalOptions="CenterAndExpand"
VerticalOptions="StartAndExpand" Text="{Binding Answer}" Scale="5"/>
<Button Command="{Binding btn_Submit}" Text="답안 제출"/>
<Button Command="{Binding btn_Show}" Text="이전 답안"/>
</StackLayout>
</ContentPage>
3. View와 ViewModel를 바인딩해준다.
Page.xaml.cs
using AppMaui.ViewModels;
namespace AppMaui;
public partial class Page30 : ContentPage
{
public Page30()
{
InitializeComponent();
BindingContext = new Page30_ViewModel(Navigation);
}
}
4. 빌드된 모습
반응형
'앱 개발 > .NET MAUI' 카테고리의 다른 글
18. [.NET MAUI] 트리거(Trigger) 사용하기 (0) | 2022.05.19 |
---|---|
17. [.NET MAUI] Tabbed Page 만들기 (0) | 2022.04.27 |
15. [.NET MAUI] SwipeView 만들기(with CollectionView) (0) | 2022.04.22 |
14. [.NET MAUI] CarouselView (with Json ) 만들어보기 (0) | 2022.04.18 |
13. [.NET MAUI] ObservableCollection로 ListView 바인딩하기 [MVVM] (0) | 2022.04.14 |
Comments