- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试在我的 ios 应用程序中使用 Onesignal Notifications,它是在 Visual Studio 中使用 Xamarin 创建的。我想让应用程序在用户点击通知时打开 ViewController,但它不起作用。当用户点击通知时,应用程序打开 ViewController,当用户应用程序转到后台时,该 View Controller 处于事件状态。希望有人指出,我在哪里犯了错误这里的代码:
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 开始正常工作。
最佳答案
您应该找到当前的根 ViewController,而不是创建一个新实例。所以请这样修改:
if (additionalData != null)
{
UINavigationController NavigationController = (UINavigationController)Window.RootViewController;
NotificationsViewController notificationsController = Storyboard.InstantiateViewController("NotificationsViewController") as NotificationsViewController;
NavigationController.PushViewController(notificationsController, true);
}
此外,如果根 ViewController 是 UITabBarController,请提供此 View Controller (NotificationsViewController)。
关于ios - Onesignal NotificationOpened 在 iOS 应用程序中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48227979/
我正在使用 onesignal 推送通知,它工作正常,但我遇到了“接收通知”的问题,因为我想在收到通知时采取行动。 这是我的代码,我按照文档进行操作,但一无所获。问题出在哪里? public clas
我尝试在我的 ios 应用程序中使用 Onesignal Notifications,它是在 Visual Studio 中使用 Xamarin 创建的。我想让应用程序在用户点击通知时打开 ViewC
我是一名优秀的程序员,十分优秀!