如果应用程序在后台或正在运行,HandleNotificationOpened 工作正常,但如果我在应用程序关闭时打开通知,则不会触发它。我尝试使用 SecureStorage 保存事件中的数据,因为我不确定事件是否在错误的时间运行,或者根本不运行。public App(){ OneSignal.Current.StartInit("onesignal-id").HandleNotificationOpened(HandleNotificationOpened).HandleNotificationReceived(HandleNotificationReceived).EndInit();}private async void HandleNotificationOpened(OSNotificationOpenedResult result){ var data = result.notification.payload.additionalData; if (data != null) { data.TryGetValue("Title", out object Title); data.TryGetValue("Conteudo", out object Conteudo); data.TryGetValue("Link", out object RLink); string lastvar = (Title.ToString().GetHashCode() + Conteudo.ToString().GetHashCode() + RLink.ToString().GetHashCode()).ToString(); if (!ChecarDB(lastvar)) { InserirDB(Title.ToString(), Conteudo.ToString(), RLink.ToString()); } await SecureStorage.SetAsync("UrlFromPush", RLink.ToString()); var page = new MainPage(); MessagingCenter.Send<MainPage>(page, "MudarURL"); }}预期结果是应用程序正确处理事件,根本没有错误消息。
2 回答
Helenr
TA贡献1780条经验 获得超3个赞
当应用程序关闭时,不会调用此方法。
虽然我没有使用OneSignal来推送通知,但是根据Android/iOS系统通知处理机制,当app关闭时,当收到远程通知时,点击通知会重启app,通知处理机制是通过系统托盘。
所以该HandleNotificationOpened
方法不会被调用。
暮色呼如
TA贡献1853条经验 获得超9个赞
我已经使用 URI 方案来访问早期初始化后台数据解决了这个问题,用自定义格式化方法替换了 方法HandleNotificationOpened
,Intent?.Data?.EncodedQuery;
这就是我得到预期结果的方式。
- 2 回答
- 0 关注
- 98 浏览
添加回答
举报
0/150
提交
取消