Я создаю приложение iOS, используя новый язык Swift. Теперь это приложение HTML5, которое отображает содержимое HTML с использованием UIWebView. Приложение имеет локальные уведомления, и то, что я хочу сделать, это запустить определенный javascript-метод в UIWebView, когда приложение переходит на передний план, щелкнув (касаясь) локальное уведомление.
Я посмотрел на этот question, но, похоже, он не решает мою проблему. Я также столкнулся с этим question, в котором рассказывается о том, как использовать UIApplicationState, что хорошо, так как это поможет мне узнать, что приложение входит на передний план из уведомления. Но когда приложение возобновляется и как я вызываю метод в viewController представления, которое отображается, когда приложение возобновляется?
Что бы я хотел сделать, так это получить экземпляр моего ViewController и установить для него свойство true. Что-то вроде этого
class FirstViewController: UIViewController,UIWebViewDelegate {
var execute:Bool = false;
@IBOutlet var tasksView: UIWebView!
}
И в моем AppDelegate у меня есть метод
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;
}
поэтому то, что я хотел бы сделать, - это когда приложение снова переходит на передний план, я хочу посмотреть на переменную execute и запустить метод следующим образом:
if execute{
tasksView.stringByEvaluatingJavaScriptFromString("document.getElementById('sample').click()");
}
Где я должен поместить код для логики для запуска javascript из webview? будет ли это методом viewDidLoad или одним из методов делегирования webView? Я попытался поместить этот код в метод viewDidLoad, но значение boolean execute установлено в его начальное значение, а не значение, установленное в делегате, когда приложение переходит на передний план.