Sto costruendo un'app per iOS utilizzando la nuova lingua Swift. Ora è un'app HTML5, che visualizza il contenuto HTML utilizzando UIWebView. L'app ha notifiche locali e ciò che voglio fare è attivare un metodo javascript specifico in UIWebView quando l'applicazione passa in primo piano facendo clic su (toccando) la notifica locale.Attivare un'azione specifica quando l'app passa in foreground da una notifica locale in iOS? (usando swift)
Ho dato un'occhiata a questo question, ma non sembra risolvere il mio problema. Ho anche trovato questo question che mi dice di usare UIApplicationState, il che è buono in quanto mi aiuterebbe a sapere che l'app passa in primo piano da una notifica. Ma quando l'app riprende e come faccio a richiamare un metodo nel viewController della vista che viene visualizzata quando l'app riprende?
Quello che mi piacerebbe fare è ottenere un'istanza del mio ViewController e impostare una proprietà su true. Qualcosa come segue
class FirstViewController: UIViewController,UIWebViewDelegate {
var execute:Bool = false;
@IBOutlet var tasksView: UIWebView!
}
E nella mia AppDelegate ho il metodo
func applicationWillEnterForeground(application: UIApplication!) {
let viewController = self.window!.rootViewController;
let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
var setViewController = mainStoryboard.instantiateViewControllerWithIdentifier("FirstView") as FirstViewController
setViewController.execute = true;
}
così che cosa vorrei fare è quando l'applicazione entra in primo piano ancora una volta, voglio guardare l'esecuzione variabile e corsa il metodo come segue,
if execute{
tasksView.stringByEvaluatingJavaScriptFromString("document.getElementById('sample').click()");
}
Dove dovrei inserire il codice per la logica per attivare il javascript dalla visualizzazione Web? sarebbe sul metodo viewDidLoad o su uno dei metodi delegate di WebView? Ho provato a inserire quel codice nel metodo viewDidLoad ma il valore dell'esecuzione booleana è impostato sul suo valore iniziale e non sul valore impostato nel delegato quando l'app passa in foreground.
Quindi ho scritto un post sul blog su ciò che volevo veramente e su come ho risolto il problema, ne ho letto. http://captaindanko.blogspot.com.au/2014/12/knowing-which-notification-brought-my.html – cptdanko