일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- AWS
- 망할
- 자마린
- SecureStorage
- 비주얼스튜디오2022
- c#
- xcode13
- 구글지도
- iOS노치
- Xamarin
- 안드로이드
- 프로그래밍
- 배포
- Xamarin Forms
- hot reload
- Android
- 개발
- 닷넷
- aws lambda
- iPhone
- ASP.NET Web API
- vpc
- Today
- Total
목록프로그래밍/Xamarin (18)
흑우마스터의 마법의 공간
현재 Xcode를 최신으로 업데이트 하면 Visual Studio for Mac에서 위와 같이 정상적으로 세팅 되는 것을 알 수 있다. iOS 버전이 올라갔기 때문에 신규프로젝트를 생성하고 실행하면 오류가 날 수 있는데 이는 다음과 같다 우선 터미널에서 라이센스에 동의를 해야 한다 xcodebuild -license 라고 입력 후 agree를 해줘야 되며 이후에도 xcodebuild -runFirstLaunch 라는 명령어까지 입력해주는 것으로 시작된다. .NET 6까지 설치한 개발자라면 처음 프로젝트 생성 시 .NET 7 등을 볼 수 없으며 이 때에는 Visual Studio for Mac installer를 통해 다시 업데이트를 진행해야 된다 https://visualstudio.microsoft.c..
C:\Users\{윈도우 로그인계정}\AppData\Local\Xamarin\MonoTouch 위 경로에 들어가면 아래와 같은 파일들을 만날 수 있다. 혹시 모르니 백업을 해두고 지우던가 하위 폴더를 만들어서 옮겨 놓자. 그리고 비주얼스튜디오를 다시 열고 Mac 페어링을 시도하면 기존에 등록 되어 있던 페어링 Mac 목록이 사라지고 처음부터 다시 등록할 수 있으며 이때 맥의 IP를 등록하면 SSH 지문과 맥 사용자 이름, 암호를 다시 입력하여 등록할 수 있다. 깔끔
우선 Platform -> Android에 있는 AndroidManifest.xml 파일을 수정해야 한다. manifest 하위 노드에 다음 내용을 추가한다 그리고 웹뷰 컨트롤을 플랫폼별로 따로 처리해주어야 되는데 다음과 같이 작성하여 WebViewClient를 상속 받은 커스텀 객체의 인스턴스를 넣어주었다. 물론 플랫폼 별로 WebViewHandler를 구현해줘도 되지만 테스트해본 결과 이렇게 작성하면 실제로 동작하지 않은 이상한 버그가 있다. 아마 생성시점에 만들게 되면 적용을 해도 우리가 필요한 ShouldOverrideUrlLoading에 접근하지 못하게 되므로 다음과 같이 선언하는게 맘 편하다 #if ANDROID var androidWebview = this.webview.Handler.Pla..
Intent intent = new Intent(Android.Provider.Settings.ActionAppNotificationSettings); intent.PutExtra("app_package", Android.App.Application.Context.PackageName); intent.PutExtra("app_uid", Android.App.Application.Context.ApplicationInfo.Uid); intent.PutExtra("android.provider.extra.APP_PACKAGE", Android.App.Application.Context.PackageName); intent.AddFlags(ActivityFlags.NewTask); Android.App.App..
// I choose mipmap-xxxhdpi icon size :) Platforms->Android->Resources 아래에 폴더를 만들고 ic_stat_onesignal_default를 만들어주면 됨 drawable 폴더 아래 폴더들을 만들고 그 안에 ic_stat_onesignal_default.png 파일을 크기에 맞춰 넣어주고 buildAction을 androidresources로 바꿔줄 것 물론 Onesignal나 다른 서비스에서 smallIcon의 값을 다른 파일 이름으로 넣으면 바꿔서 출력 되긴 하지만 기본적으로 그런 것도 귀찮은 사람이라면 이 방법으로 해결할 수 있다.
WPF를 줄곳 해서 그런가 당연히 될 줄 알았던 건데 실제로 MAUI의 데스크탑으로 열게 되면 동작을 하는 기능입니다. 대게 실수 할 수 있는 부분은 Width를 제대로 주지 않아서 영역 밖으로 쭉 나가버리는 경우는 있긴한데 그 문제는 아니고 단톡방에 한 분이 LinebreakMode랑 MaxLine을 같이 줬는데 ...이 안 생긴다고 물어보셔서 "에잉 높이가 안 정해져서 안되겠지" 라고 생각했지만 진짜 안됐네요 아래 구문을 MauiProgram.cs에 포함시켜주세요 static void AllowMultiLineTruncation() { static void UpdateMaxLines(Microsoft.Maui.Handlers.LabelHandler handler, ILabel label) { #if ..
아마 자마린하고 MAUI 둘다 적용하는 건 같을거라 MAUI Android 프로젝트에도 동일하게 적용 가능할 것입니다. 우선 자마린에서 Xamarin.Forms.Map 을 구현하고 간단하게 핀 정도를 구현해주면 아래와 같이 화면이 구성 됩니다. 해당 맵에서 특정 좌표를 찍었다고 쳐도 기본 제공 핀 이외에 다른 정보가 너무 많기 때문에 굉장히 지저분해보입니다. 이 것을 바꿔보고자 합니다 기본 컨트롤에서 무언가 작업을 하기 위해서는 기본 컨트롤을 상속 받아 커스텀 컨트롤을 만들고 커스텀 렌더러를 구현하기로 합니다. Xamarin Forms 프로젝트에는 위와 같이 그냥 형식적인 맵을 만들어주기로 합니다. 그 후 안드로이드 프로젝트에 커스텀 렌더러를 만들어줍니다. 이렇게 가져오게 되면 기본적으로 제공 하는 현재..
Entry에서 타이핑을 하는 상황에서 ScrollView를 선택하거나 다른 페이지를 이동하더라도 키보드가 그대로 오버 된 상태를 유지하는 문제가 있었는데 아래와 같은 방법으로 해결하였다. 물론 안드로이드와 iOS에서 작업할 때에는 네임스페이스 위에 Dependency를 선언해줘야 된다. [assembly: Dependency(typeof(인터페이스를 구현한 클래스명))] 인터페이스: public interface IKeyboardHelper { void HideKeyboard(); } iOS: public class iOSKeyboardHelper : IKeyboardHelper { public void HideKeyboard() { UIApplication.SharedApplication.KeyWind..