如何在 OneSignal Swift 中显示特定的 ViewController

How to display a specific ViewController in OneSignal Swift

我用 OneSignalSwift 3 开发应用。我得到了推动。单击通知时,如何在 OneSignal 中显示带有 WebView 的特定 ViewController。在使用字段 "link" 推送附加数据时,我得到了 link,但无法在我的 WebView.

中显示此 link

我尝试使用全局变量 tempURLadditional 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.

传递您的数据