【发布时间】:2018-01-12 14:10:39
【问题描述】:
我尝试在我的 ios 应用程序中使用 Onesignal 通知,该应用程序是在 Visual Studio 中使用 Xamarin 创建的。我想让应用程序在用户点击通知时打开 ViewController,但它不起作用。当用户点击通知时,应用程序打开 ViewController,当用户应用程序进入后台时它处于活动状态。 希望有人显示,我犯错的地方 代码如下:
public class AppDelegate : UIApplicationDelegate
{
public static UIStoryboard Storyboard = UIStoryboard.FromName("Main", null);
public override UIWindow Window {
get;
set;
}
public override bool FinishedLaunching (UIApplication application, NSDictionary launchOptions)
{
OneSignal.Current.StartInit("mykey")
.InFocusDisplaying(OSInFocusDisplayOption.None)
.HandleNotificationOpened(HandleNotificationOpened)
.EndInit();
OneSignal.Current.IdsAvailable(IdsAvailable);
return true;
}
void IdsAvailable(string userID, string pushToken)
{
GlobalUserInfo._token = userID;
}
private static void HandleNotificationOpened(OSNotificationOpenedResult result)
{
OSNotificationPayload payload = result.notification.payload;
Dictionary<string, object> additionalData = payload.additionalData;
if (additionalData != null)
{
UINavigationController NavigationController = (UINavigationController)Storyboard.InstantiateInitialViewController();
NotificationsViewController notificationsController = Storyboard.InstantiateViewController("NotificationsViewController") as NotificationsViewController;
NavigationController.PushViewController(notificationsController, true);
}
}
}
NotificationsViewController 是用户收到的所有通知的简单列表。
更新 我注意到,函数 HandleNotificationOpened 在 iOS 中不起作用。
更新 发现错误。我忘了,我在其他地方使用 OneSignal Init。当我删除重复项时,HandleNotificationOpened 开始正常工作。
【问题讨论】:
标签: ios visual-studio xamarin onesignal