У меня есть приложение на основе UIWebView, которое хранит некоторые состояния. У меня есть родная панель вкладок и верхняя панель, однако. Что мне нужно, так это то, что когда я нажимаю на родную панель, я сохраняю данные, хранящиеся в UIWebView.
Чтобы сделать это, я вызвал valuJavaScriptByString, чтобы создать объект JSON, и он выполняет обратный вызов Objective-C через протокол UIWebViewDelegate.
Однако я обнаружил, что обратный вызов является асинхронным, и, следовательно, моя основная транзакция происходит до загрузки данных.
Есть идеи, как решить эту проблему?
Обновление: чтобы лучше объяснить проблему: -
- У меня есть HTML-страница с формой, в которую кто-то помещает некоторые данные.
- Моя панель вкладок является родной.
- При нажатии кнопки на панели вкладок я хочу сохранить данные из HTML в модели Objective-C, и представление должно измениться на другое представление.
Что происходит, когда я нажимаю кнопку, на странице происходит вызов javascript (для создания строки JSON для отправки в Objective-C), и эти данные сохраняются в модели obj-c. Однако это происходит асинхронно. Так что мой экран меняется до того, как данные загружаются в модель. Если я обновлю следующий экран, он показывает правильные данные. Мне было интересно, есть ли способ обойти это.
Обратите внимание, я знаю, как вызывать функции OBjective-C из WebViews. Для этого мы все равно используем JSOBjBridge.