私はXamarin.FormsでOneSignalプッシュ通知を実装しようとしています。OneSignal:Xamarin.FormsアプリケーションのAppDelegateでnotificationOpenedを処理する方法は?
私はApp()
のコンストラクタにOneSignal AdditionalData
によって返された文字列を渡す必要があります。
私はHandleNotificationOpened(OSNotificationOpenedResult result)
を使用して通知タップを処理し、文字列を取得してLoadApplication(new App(myData))
に渡しました。
Android用にはMainActivity
、iOS用にはと書いてあります。
Android用にすべてうまく動作しています。すなわちHandleNotificationOpened()
はadditionalData
を取得し、LoadApplication(new App(myData))
に渡します。
しかし、iOSでは、通知を開いたときにHandleNotificationOpened()
コードは呼び出されません。
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);
}
}
}
ここにコードを記入してください。 –