iOS 에서 SafeArea 를 지정 하면

상단과 하단에 영역이 생기면서 그쪽에는 앱구동 화면이 표시되지 않는다

하지만 하단의 영역은 살려두고 싶을때가 있다. 

이때는 OnAppearing() 에 아래처럼 코딩하면 하단의 영역을 살려 

앱구동화면이 하단에도 문제 없이 표시된다.


protected override void OnAppearing()

{

    base.OnAppearing();

    var safeInsets = On<iOS>().SafeAreaInsets();

    safeInsets.Bottom = 0;

    Padding = safeInsets;

}




Rg.Plugins.Popup 을 이용해서 팝업을 호출한 경우 Back  버튼이나 팝업을 벗어난 화면을 터치한 경우

팝업이 닫히게 되는데 이를 막기 위해서 코드단에 아래와 같은 코드를 넣으면 된다.


CloseWhenBackgroundIsClicked = false;

Shell.Current.GoToAsync("..");

페이지를 지정하지 않고 바로 이전 페이지로 가고 싶을때 사용합니다.


Android 쪽 타겟팅 Android 버전을 Android 9.0 에서 Android 10.0 으로 올렸더니 

아래와 같은 에러가 발생되었다.


Could not find 2 Android X assemblies, make sure to install the following NuGet packages:

 - Xamarin.AndroidX.MediaRouter

You can also copy-and-paste the following snippet into your .csproj file:

    <PackageReference Include="Xamarin.AndroidX.MediaRouter" Version="1.1.0.1" /> UnitConversion.Android


위에러는 Nuget 의 AndroidX 의 패키지가 더이상 지원을 안해서 발생하는 문제로

NugetPackage 에서 Xamarin.Android.Support.v7.MediaRouter 를 제거하면 해결된다.



WebView 에 특정 url 을 보여주려고 했는데 아래 처럼 에러가 발생되었습니다.

 

net::ERR_CLEARTEXT_NOT_PERMITTED

 

 

확인해 보니 Android OS 9 Pie 버전부터는 WebView에 "http://" URL 접근이 안된다고 합니다.

 

해당 오류를 해결하기위해선 안드로이드 프로젝트의 AndroidManifest.xml 파일의 내용에

아래 굵게 표시된 내용을 추가하면 됩니다. (android:usesCleartextTraffic="true")

 

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="com.companyname.test" android:installLocation="auto">

<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="28" />

<application

           android:label="test.Android"

           android:usesCleartextTraffic="true">

       </application>

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

<uses-permission android:name="android.permission.INTERNET" />

</manifest>

 

위처리를 하고 다시 앱을 실행하니 아래처럼 url 내용이 잘 나타났습니다.