Maui 특정 컨트롤을 안드로이드에서만 보이기

  • 무엇을 하고자 하는지

특정 컨트롤을 windows로 빌드할땐 표시되지 않도록 하고 싶습니다.

  1. 현재 admob을 이용하여 android 어플에 광고 삽입
    아래 링크 따라서 광고 삽입
    (kjun.kr (kjcoder.tistory.com) :: [.NET MAUI] AdMob 광고 적용하기 (전면,배너,보상))
  2. 안드로이드에서는 정상 작동 하나 window macine으로 디버깅 하면 에러 발생
    (admob:MTAdView 에서 에러)
  3. 윈도우에서 광고가 안뜨게 만들 수 있는 방법이 필요.
  • 현재 작성한 코드 중 문제가 되는 부분

    public NotebookPage()
    {
    InitializeComponent();

      List<NotebookModel> nb = new List<NotebookModel>();
    
      nb.Add(new NotebookModel { Img_path = "icon_nb.png", Name = "Expression", Detail = "D_Expression" });
      nb.Add(new NotebookModel { Img_path = "icon_nb.png", Name = "Conversation", Detail = "D_Conversation" });
      nb.Add(new NotebookModel { Img_path = "icon_nb.png", Name = "Structure", Detail = "D_Structure" });
    
      lv_notebook.ItemsSource = nb;
    
      try
      {
          if (DeviceInfo.Platform.Equals(DevicePlatform.Android))
          {
              this.mtAdView.AdsId = "ca-app-pub-3940256099942544/6300978111";
              CrossMauiMTAdmob.Current.OnInterstitialOpened += (s, e) => DisplayAlert("AdMobTest", "Interstitial Open", "OK");
              CrossMauiMTAdmob.Current.OnInterstitialClosed += (s, e) => DisplayAlert("AdMobTest", "Interstitial Close", "OK");
          }
          else
          {
              //this.mtAdView.AdsId = "ca-app-pub-3940256099942544/2934735716";
          }
    
      }
      catch { }
    

    } // 이곳까지 단계적으로 실행 후

  • 기대하는 동작
  1. 안드로이드에서는 admob 광고 표시
  2. window machine (UWP)로 실행시 광고 없이 실행
좋아요 1

MAUI에서 어떤 플랫폼에서 실행되었는지 체크 할수 있습니다.

private bool IsAndroid() =>
    DeviceInfo.Current.Platform == DevicePlatform.Android;


[플랫폼 유형]

이 문서를 참조하시면 될것 같아요

이 걸 잘이용해서 특정 플랫폼에서 동작할 코드 and UI를 디자인 할수 있는 것 같아요

앱이 실행된 디바이스 유형도 알수 있네요 ^^

+++
또는 전처리로도 가능할 것 같아요

좋아요 2

감사합니다.

처음부터 abmob 생성 여부를 디바이스 확인을 하고 c#코드로 생성해서 사용해야겠네요

좋아요 2