Ứng dụng của tôi nhận được Thông báo đẩy qua Firebase. Bây giờ có 3 tình huống khác nhau có thể xảy ra khi thông báo đến:Trạng tháiBarNotification cách nhận dữ liệu hoặc gửi lại ý định?
- Ứng dụng là ở mặt trước
- Ứng dụng trong nền
- Các ứng dụng không chạy
Tình 1 là không có vấn đề. Thông báo được nhận trong ứng dụng ok. Tình huống 2 và 3 hoạt động tốt miễn là bạn nhấn vào thông báo trong ngăn kéo. Trong trường hợp 2 và 3 khi biểu tượng ứng dụng được nhấn thay vì biểu tượng ngăn, ứng dụng không nhận được bất kỳ thông báo nào. Tôi đã cố gắng để có được các thông báo hoạt động từ StatusBar và hoạt động nhưng tôi không thể lấy dữ liệu từ Extras hoặc gửi lại thông báo đến dịch vụ thông báo đẩy đang chờ. Đây là mã thử nghiệm để nhận Thông báo.
NotificationManager notificationManager = (NotificationManager)Application.Context.GetSystemService(Context.NotificationService);
var notifications = notificationManager.GetActiveNotifications()
.Where(notif => notif.PackageName == Application.Context.PackageName);
foreach (var notification in notifications)
{
Log.Info(TAG, "OnActivityResumed: Notification in active in Status Bar: {0}", notification.Notification.ToString());
var data = notification.Notification.Extras.GetString("data");
Log.Debug("Notifier", "Data received: {0}", data);
//if (data != null)
//{
// Settings.Notification = JsonConvert.DeserializeObject<LoginNotificationParameter>(data);
//}
}
// Canceling all notifications
notificationManager.CancelAll();
Câu hỏi:
- Có hành vi đúng khi cho rằng các ứng dụng không nhận được bất kỳ ý đồ khi một thông báo là trong ngăn kéo?
- Nếu vậy, làm cách nào để xử lý các tình huống 2 và 3 khi người dùng nhấn vào biểu tượng ứng dụng thay vì thông báo ngăn kéo?
Tôi thấy dữ liệu này trong het Notification khi in tất cả các Extras Các giá trị chính:
06-28 16:34:13.174 20792 20792 I Notifier: OnActivityResumed: Notification is active in Status Bar: Notification(pri=0 contentView=null vibrate=null sound=content://settings/system/notification_sound defaults=0x0 flags=0x10 color=0x00000000 vis=PRIVATE semFlags=0x0 semPriority=0)
06-28 16:34:13.191 20792 20792 I Notifier: KeyIn: Extras Key: android.title Data: Login
06-28 16:34:13.191 20792 20792 I Notifier: KeyIn: Extras Key: android.subText Data:
06-28 16:34:13.191 20792 20792 I Notifier: KeyIn: Extras Key: android.template Data: android.app.Notification$BigTextStyle
06-28 16:34:13.192 20792 20792 I Notifier: KeyIn: Extras Key: android.showChronometer Data: false
06-28 16:34:13.192 20792 20792 I Notifier: KeyIn: Extras Key: android.text Data: Er is een inlogverzoek voor u ontvangen.
06-28 16:34:13.194 20792 20792 I Notifier: KeyIn: Extras Key: android.progress Data: 0
06-28 16:34:13.194 20792 20792 I Notifier: KeyIn: Extras Key: android.progressMax Data: 0
06-28 16:34:13.195 20792 20792 I Notifier: KeyIn: Extras Key: android.appInfo Data: ApplicationInfo{a27f281 nl.natuurnetwerk.notifier}
06-28 16:34:13.195 20792 20792 I Notifier: KeyIn: Extras Key: android.showWhen Data: true
06-28 16:34:13.195 20792 20792 I Notifier: KeyIn: Extras Key: android.largeIcon Data:
06-28 16:34:13.195 20792 20792 I Notifier: KeyIn: Extras Key: android.bigText Data: Er is een inlogverzoek voor u ontvangen.
06-28 16:34:13.195 20792 20792 I Notifier: KeyIn: Extras Key: android.infoText Data:
06-28 16:34:13.195 20792 20792 I Notifier: KeyIn: Extras Key: android.originatingUserId Data: 0
06-28 16:34:13.196 20792 20792 I Notifier: KeyIn: Extras Key: android.progressIndeterminate Data: false
06-28 16:34:13.196 20792 20792 I Notifier: KeyIn: Extras Key: android.remoteInputHistory Data:
Bạn có muốn cập nhật dữ liệu trong ứng dụng của mình bằng thông báo không? – apineda
Chức năng của ứng dụng này là để xác minh thông tin đăng nhập từ một trang web. Khi người dùng đăng nhập vào một trang web cụ thể với UserId/Password, một thông báo sẽ được gửi đến ứng dụng. Khi ứng dụng mở nó bắt đầu quét mã QR được hiển thị sau khi đăng nhập trên trang web. Thông tin trong thông báo phải bằng thông tin trong mã QR. Khi đó phù hợp với trang web tiếp tục đến trang chủ của nó. Nếu không, thông tin đăng nhập sẽ bị từ chối. –