2016-11-21 21 views
0

OneSignalSwift 3でアプリを実行します。私はプッシュした。をWebViewと表示するには、通知をクリックするとに表示されます。フィールド"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

最初。 ViewControllerStoryboardIDでインスタンス化する必要があります。 this link.

あなたが知っている限り、additionalDataはゼロではありません。StoryboardIDでデータを渡すことができます。

+0

ありがとうございました!それは起こった。 – Zhanserik

+0

あなたの歓迎幸せなコーディング... – emresancaktar

関連する問題