2016-05-04 18 views
0

Ich verwende ein Smart App Banner, um eine Anwendung zu bewerben, und es funktioniert gut! Allerdings möchte ich den Link, den ich in meinem WebView navigiere (ich verwende ein WKWebView) laden, wenn ich auf dem Smart App Banner klicke.Wie lade ich den Link, den ich in meinem WebView navigiere, wenn ich auf dem Smart App Banner klicke?

Hier ist der folgende Code, den ich in meiner AppDelegate.swift Datei bin mit:

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 
} 

und es funktioniert nicht!

+0

Sie die Viewcontroller zeigen, es zu Navigation Hinzufügen oder es als modaler zeigt ? – GeekRiky

+0

Ich habe nur einen Viewcontroller in der Anwendung, die ich verwendet habe, um mein WebView anzuzeigen. –

+0

Normalerweise ist Ihr View-Controller eine Klasse in einer separaten Datei. Im App-Delegaten können Sie eine Benachrichtigung posten und im View-Controller beobachten. Zur Verwendung von NSNotificationCenter in swift: [http://StackOverflow.com/a/24756761/4519092](http://StackOverflow.com/a/24756761/4519092) – GeekRiky

Antwort

2

Sie können dies versuchen:

in AppDelegate:

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 
} 

im View-Controller:

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

Es funktioniert gut! Vielen Dank! –

Verwandte Themen