Проблемы миграции WKWebView - PullRequest
0 голосов
/ 16 октября 2019

В дополнение к моему предыдущему вопросу Миграция гибридного приложения iOS из UIWebView в WKWebview

Я добился хорошего прогресса, и у меня есть только несколько свободных концов, чтобы привести в порядок. Общее улучшение производительности по сравнению с UIWebView является выдающимся.

В UIWebView стало возможным программно настраивать фокус на текстовое поле, используя

webView.keyboardDisplayRequiresUserAction = NO ;

Однако это недоступно в WKWebView и с 2016 годапрограммисты разрабатывают обходные пути обновления (обходные пути), чтобы преодолеть это.

Я пытался реализовать последние из них, которые я мог найти в переполнении стека, которые я нашел в https://stackoverflow.com/a/55344531/5948260

Однакотак как я очень неопытен в кодировании в XCode, пожалуйста, кто-нибудь может сказать мне, как именно я добавляю вышеупомянутое решение в свой проект. Я тщетно пытался найти примеры того, как именно это сделать я на GitHub или в другом месте, но безрезультатно.

До сих пор я пытался скопировать код, приведенный в ответе выше, в файл .m и добавить его в свой проект, но я получил около 20 ошибок, затем я добавил оператор импорта для Foundation и большую частьони исчезли, но XCode пожаловался, что не знает, что такое класс WebViewInjection. Также должен быть соответствующий заголовочный файл? Должен ли быть соответствующий оператор интерфейса? Как вызывается метод, определенный в ответе? Поскольку я не мог ответить ни на один из них, я также попытался добавить метод в мой класс ViewController. Хотя это было принято без ошибок, оно не повлияло на мое приложение, т.е. клавиатура не запускалась автоматически.

Я бы также хотел, чтобы размер веб-вида изменялся над клавиатурой, а не прокручивался до текстового поля, так как это кажется мне очень грязным решением.

Вся помощь получена с благодарностью.

1 Ответ

0 голосов
/ 16 октября 2019

Мне удалось отобразить клавиатуру, добавив

[self allowDisplayingKeyboardWithoutUserAction];

к viewDidLoad

Я сохранил объявление метода allowDisplayingKeyboardWithoutUserAction внутри моего ViewController, но изменил знак + перед объявлением метода наa - и это, кажется, сработало.

Я до сих пор не знаю, как изменить размер веб-просмотра при отображении клавиатуры.

...