Tôi đang làm việc để triển khai thông báo đẩy OneSignal trong Xamarin.Forms.OneSignal: Cách xử lý thông báoMở trong AppDelegate của ứng dụng Xamarin.Forms?
Tôi cần chuyển chuỗi được OneSignal trả về AdditionalData
vào hàm tạo của App()
.
Vì vậy, tôi đã sử dụng HandleNotificationOpened(OSNotificationOpenedResult result)
để xử lý nhấn thông báo và tìm nạp chuỗi rồi chuyển nó đến LoadApplication(new App(myData))
.
Vì vậy, cho điều này, tôi đã viết mã trong MainActivity
cho Android và trong AppDelegate
cho iOS.
Mọi thứ đều hoạt động tốt cho Android; ví dụ: HandleNotificationOpened()
tìm nạp additionalData
và chuyển nó đến LoadApplication(new App(myData))
.
Nhưng trong iOS, khi tôi mở thông báo, mã số HandleNotificationOpened()
không được gọi.
AppDelegate.cs
static string s = null;
public override bool FinishedLaunching(UIApplication app, NSDictionary options)
{
OneSignal.Current.StartInit("MyKey").HandleNotificationOpened(HandleNotificationOpened).EndInit();
if(s!=null)
{
LoadApplication(new App(s));
}
else
{
LoadApplication(new App("myUrl.lasso"));
}
return base.FinishedLaunching(app, options);
}
private static void HandleNotificationOpened(OSNotificationOpenedResult result)
{
OSNotificationPayload payload = result.notification.payload;
Dictionary<string, object> additionalData = payload.additionalData;
if (additionalData != null)
{
if (additionalData.ContainsKey("url_direct"))
{
s = additionalData["url_direct"].ToString();
System.Diagnostics.Debug.WriteLine("We need to redirect it to: " + s);
}
}
}
Vui lòng chia sẻ mã của bạn tại đây. –