如何在 OneSignal Swift 中显示特定的 ViewController
How to display a specific ViewController in OneSignal Swift
我用 OneSignal
和 Swift 3
开发应用。我得到了推动。单击通知时,如何在 OneSignal
中显示带有 WebView
的特定 ViewController
。在使用字段 "link"
推送附加数据时,我得到了 link,但无法在我的 WebView
.
中显示此 link
我尝试使用全局变量 tempURL
从 additional data
中放入 url。但它不起作用。
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
OneSignal.initWithLaunchOptions(launchOptions, appId: "MYID", handleNotificationAction: { (result) in
let payload = result?.notification.payload
print("This is Payload \(payload)")
var fullMessage = payload?.title
let messageTitle = "OneSignal Example"
if (result?.action.actionID) != nil {
let additionalData = payload?.additionalData
let url = additionalData?["link"] as! String?
tempURL = url!
fullMessage = fullMessage! + "\nPressed ButtonId:\(url)"
}
let alertController = UIAlertController(title: messageTitle, message: fullMessage, preferredStyle: .alert)
let okAction = UIAlertAction(title: "OK", style: .default)
alertController.addAction(okAction)
alertController.show(alertController, sender: nil)
})
return true
}
尝试显示:
func application(_ application: UIApplication, didReceiveRemoteNotification data: [AnyHashable : Any]) {
let aViewController = ViewController()
aViewController.loadAddressURL(url: tempURL)
UIApplication.shared.keyWindow?.rootViewController?.present(aViewController, animated: true, completion:nil)
}
我有错误:
fatal error: unexpectedly found nil while unwrapping an Optional value
首先你不能以你的方式传递数据。您应该用 StoryboardID
实例化 ViewController
。我解释了如何使用
如果您非常确定,您的 additionalData 不为零,您可以使用 StoryboardID.
传递您的数据
我用 OneSignal
和 Swift 3
开发应用。我得到了推动。单击通知时,如何在 OneSignal
中显示带有 WebView
的特定 ViewController
。在使用字段 "link"
推送附加数据时,我得到了 link,但无法在我的 WebView
.
我尝试使用全局变量 tempURL
从 additional data
中放入 url。但它不起作用。
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
OneSignal.initWithLaunchOptions(launchOptions, appId: "MYID", handleNotificationAction: { (result) in
let payload = result?.notification.payload
print("This is Payload \(payload)")
var fullMessage = payload?.title
let messageTitle = "OneSignal Example"
if (result?.action.actionID) != nil {
let additionalData = payload?.additionalData
let url = additionalData?["link"] as! String?
tempURL = url!
fullMessage = fullMessage! + "\nPressed ButtonId:\(url)"
}
let alertController = UIAlertController(title: messageTitle, message: fullMessage, preferredStyle: .alert)
let okAction = UIAlertAction(title: "OK", style: .default)
alertController.addAction(okAction)
alertController.show(alertController, sender: nil)
})
return true
}
尝试显示:
func application(_ application: UIApplication, didReceiveRemoteNotification data: [AnyHashable : Any]) {
let aViewController = ViewController()
aViewController.loadAddressURL(url: tempURL)
UIApplication.shared.keyWindow?.rootViewController?.present(aViewController, animated: true, completion:nil)
}
我有错误:
fatal error: unexpectedly found nil while unwrapping an Optional value
首先你不能以你的方式传递数据。您应该用 StoryboardID
实例化 ViewController
。我解释了如何使用
如果您非常确定,您的 additionalData 不为零,您可以使用 StoryboardID.
传递您的数据