2016-05-04 7 views
0

スマートアプリケーションバナーを使用してアプリケーションを宣伝しています。うまく機能しています。しかし、私はSmart App BannerでclinkingしているときにWebView(私はWKWebViewを使用しています)でナビゲートしているリンクをロードしたいと思います。ここでリンクをロードする方法私はSmart App BannerをクリックするとwebView内をナビゲートしていますか?

は、私は私のAppDelegate.swiftファイルで使用しています次のコードです:

var vc = ViewController() 

func application(application: UIApplication, openURL url: NSURL,sourceApplication: String?, annotation: AnyObject) -> Bool { 

let url1 = NSURL(string:"\(url)")! 

self.vc.webView!.loadRequest(NSURLRequest(URL: url1!)) 
return true 
} 

、それが働いていません!

+0

を、モーダルとしてそれをnavigationControllerに追加するか示します? – GeekRiky

+0

私はWebViewを表示するために使用したアプリケーション内に1つのviewcontrollerしか持っていません。 –

+0

通常、ビューコントローラは別のファイルのクラスです。 アプリデリゲートでは、通知を送信して、ビューコントローラでそれを観察できます。 swiftでNSNotificationCenterを使用する場合:[http://stackoverflow.com/a/24756761/4519092](http://stackoverflow.com/a/24756761/4519092) – GeekRiky

答えて

2

あなたはこれを試すことができます。

アプリデリゲートに:ビューコントローラで

func application(application: UIApplication, openURL url: NSURL,sourceApplication: String?, annotation: AnyObject) -> Bool { 

let url1 = NSURL(string:"\(url)")! 

NSNotificationCenter.defaultCenter().postNotificationName("OpenLinkNotification", object: url1) 

return true 
} 

:あなたはViewControllerをを示し

override func viewDidLoad() { 
     super.viewDidLoad() 

     NSNotificationCenter.defaultCenter().addObserver(self, selector: "methodOfReceivedNotification:", name:"OpenLinkNotification", object: nil) 
     ... 
} 

... 

func methodOfReceivedNotification(notification: NSNotification){ 
    let url = notification.object as NSURL 
    self.vc.webView!.loadRequest(NSURLRequest(URL: url!)) 
} 

override func viewDidDisappear(animated: Bool) { 
    NSNotificationCenter.defaultCenter().removeObserver(self) 
} 
+0

うまくいっています!ありがとうございました! –

関連する問題