2017-11-16 3 views
0

Xamarin.Forms에 응용 프로그램을 빌드 중이며 iOS에 로컬 알림을 표시하는 데 문제가 있습니다. https://developer.xamarin.com/guides/ios/platform_features/user-notifications/enhanced-user-notifications/에서 안내를 따르면서 알림이 표시되지 않습니다. 나는 디스플레이에 통보하고 싶습니다 Xamarin Forms iOS 로컬 알림이 표시되지 않습니다.

UNUserNotificationCenter.Current.RequestAuthorization (UNAuthorizationOptions.Alert, (approved, err) => {}); 

그리고 내 페이지에서

:

using UserNotifications; 


var content = new UNMutableNotificationContent(); 
content.Title = "Notification Title"; 
content.Subtitle = "Notification Subtitle"; 
content.Body = "Test Notification."; 
content.Badge = 1; 

var trigger = UNTimeIntervalNotificationTrigger.CreateTrigger (5, false); 

var requestID = "sampleRequest"; 
var request = UNNotificationRequest.FromIdentifier (requestID, content, 
trigger); 

UNUserNotificationCenter.Current.AddNotificationRequest (request, (err) => { 
if (err != null) { 
    // Do something with error... 
} 
}); 

내 nuGet 패키지의 모든이에게 달려 있습니다 나는 AppDelegate에 내 FinishedLaunching 방법에 다음을 추가했습니다 날짜와 iOS iPhone 시뮬레이터 및 실제 iPad 장치에서 테스트를 시도했습니다.

여기에 누락 된 것이 있습니까?

답변

0

사실 앱이 포 그라운드 인 경우 iOS 시스템은 기본적으로 알림을 음소거합니다.

솔루션 : 당신이 지연 통지를 트리거 할 때

  1. 가 홈 버튼을 클릭을 통해 백그라운드로 이동 당신을위한 두 가지 솔루션이있어

    . 그런 다음 알림이 표시됩니다.

  2. 대표자 userNotificationCenter:willPresentNotification:withCompletionHandler:을 구현하면 포 그라운드에있을 때 앱에 알림이 도착하면 호출됩니다. 앱이 포 그라운드에있을 때 예를 들어 , 여기에 통지를 가능하게하는 코드입니다 :

    UNUserNotificationCenter.Current.Delegate = new MyNotificationDelegate(); 
    
    public class MyNotificationDelegate: UNUserNotificationCenterDelegate 
    { 
        public override void WillPresentNotification(UNUserNotificationCenter center, UNNotification notification, Action<UNNotificationPresentationOptions> completionHandler) 
        { 
         completionHandler(UNNotificationPresentationOptions.Alert); 
        } 
    } 
    
+0

당신을 감사합니다! 위임자 willPresentNotification을 구현하면 문제가 해결됩니다. – Zithro

+0

다행히 :) –

관련 문제