通知打开时在WKWebView中加载url



我用onessignal发送推送通知,我收到他们很好。我的问题是,当我点击通知时,我希望它打开通知url。我有notificationUrl,但在我的WKWebView加载url是我的问题。我使用的是SwiftUi应用生命周期,而不是UiKit。请注意,我没有ViewController

我试过使用UIApplication.shared.open(URL(string: notificationUrl)!),但这会打开浏览器中的链接。

这是我在AppDelegate中打开的通知处理程序。

.....
let osNotificationOpenedBlock: OSNotificationOpenedBlock = { resultObj in
let notification: OSNotification = resultObj.notification
let actionType = resultObj.action.type
let dataObj = resultObj.notification.additionalData
let notificationUrl = "(dataObj?["notificationUrl"] ?? "")"
UIApplication.shared.open(URL(string: notificationUrl)!)
}
OneSignal.setNotificationOpenedHandler(osNotificationOpenedBlock)
....

对我来说有效的是使webview变量成为代码中的全局变量。所以在webview。swift或者你的webview文件中,把WKWebView变量放在结构体的外面然后应用:

var wbWebViewEl: WKWebView = WKWebView()
struct SwiftUiWebView: UIViewRepresentable {
...

然后,而不是:

UIApplication.shared.open(URL(string: notificationUrl)!)

:

var notificationRequestEl = URLRequest(url: url!)
wbWebViewEl.load(notificationRequestEl) 

最新更新