Как включить всплывающее окно в веб-представлении? - PullRequest
0 голосов
/ 23 марта 2020

В настоящее время используется "react-native-webview": "^6.11.1" в приложении. При загрузке веб-сайта появляется всплывающее окно, которое необходимо одобрить. Как я могу включить / разрешить веб-просмотру отображать всплывающее окно?

Попробовал несколько вещей:

  1. Установка prop useWebKit в TRUE (WkWebview) и FALSE (UIWebview)
  2. Установка prop onShouldStartLoadWithRequest для возврата true для каждого URL

Чтобы быть более точным c, упомянутое мной всплывающее окно выглядит следующим образом при запуске на рабочем столе Chrome. Должно быть одно уведомление о блокировке всплывающих окон с просьбой разрешить всплывающее окно. enter image description here

1 Ответ

0 голосов
/ 24 марта 2020

TLDR;

Добавьте следующий код в RNCWKWebView.m в методе didMoveToWindow

wkWebViewConfig.preferences.javaScriptCanOpenWindowsAutomatically = YES;
wkWebViewConfig.preferences.javaScriptEnabled = YES;

Кстати, я использую WKWebView.


Пояснение

Здесь указывается javaScriptCanOpenWindowsAutomatics , которое фактически установлено в значение NO по умолчанию для iOS в соответствии с Apple docs

Значением по умолчанию является NO в iOS и YES в macOS.

Установка этого значения в YES указывает, может ли JavaScript открываться windows без взаимодействия с пользователем. В этом случае я использую функцию window.open() из javascript моего сайта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...