如果應用程序在后臺或正在運行,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條經驗 獲得超4個贊
當應用程序關閉時,不會調用此方法。
雖然我沒有使用OneSignal來推送通知,但是根據Android/iOS系統通知處理機制,當app關閉時,當收到遠程通知時,點擊通知會重啟app,通知處理機制是通過系統托盤。
所以該HandleNotificationOpened
方法不會被調用。

暮色呼如
TA貢獻1853條經驗 獲得超9個贊
我已經使用 URI 方案來訪問早期初始化后臺數據解決了這個問題,用自定義格式化方法替換了 方法HandleNotificationOpened
,Intent?.Data?.EncodedQuery;
這就是我得到預期結果的方式。
- 2 回答
- 0 關注
- 134 瀏覽
添加回答
舉報
0/150
提交
取消