Как обнаружить появление элемента JS внутри WKWebView - PullRequest
0 голосов
/ 14 января 2020

Моя задача - добавить указанный c виджет чата, созданный для веб-приложения, в мое приложение iOS.

Как работает виджет чата: он показывает мне значок-кнопку, которую можно нажимать и отображает 2 Кнопки для выбора, нажав одну из них, показывают большое окно чата.

У меня есть HTML документ, который загружает этот виджет:

<html><head/><body>
<script src="CONFIDENTIAL-URL/chat_widget_inserter.js"></script>
<script>chatWidgetInit("CONFIDENTIAL-URL");</script>
</body>
</html> 

Я добавил UKWebView на мою раскадровку, которая загружает этот html код в viewDidLoad of StoryboardV C:

let chatURL = Bundle.main.url(forResource: "chat", withExtension: "html")
if let url = chatURL {
    chatView.loadFileURL(url, allowingReadAccessTo: url)
}

Теперь проблемы.

Этот значок виджета чата отображается в правом нижнем углу любой страницы и с указанным c масштабированием, которое зависит от dpi, я думаю. Таким образом, когда он загружается в приложение, он действительно маленький.

Итак, я сделал свои ограничения WKWebView go далеко от экрана:

Align Leading to: Safe Area
Equals: -600

Это создает проблемы:

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

Вопросы:

  1. Как я могу определить, когда WKWebView показывает значок, когда он показывает 2 кнопки и когда он показывает большое окно чата? Он не go для разных ссылок, он просто работает как JS код.
  2. Есть ли другой способ показать и взаимодействовать с этим виджетом чата?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...