2016-11-21 50 views
0

我使用OneSignalSwift 3来做应用程序。我得到了推动。如何在单击通知时在OneSignal中使用WebView显示特定ViewController。在推送"link"字段的附加数据时,我获得了链接,但无法在我的WebView中显示此链接。如何在OneSignal Swift中显示特定的ViewController

我尝试使用全局变量tempURL将URL从additional data。但它不起作用。

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

回答

1

首先你不能传递数据。你应该用StoryboardID实例化ViewController。我解释了如何用this link.

使用它,如果你是相当肯定的是,你的additionalData不是零,你可以通过你的数据与StoryboardID

+0

谢谢!它发生了。 – Zhanserik

+0

欢迎编码... – emresancaktar

相关问题