Запретить ссылки в iframe для навигации/перехвата веб-просмотра Cordova, особенно в ios

У меня есть приложение Cordova, которое отображает внешний контент с помощью iframe (в этом случае встроенное видео YouTube)

При нажатии ссылок внутри iframe (например, логотипа YouTube) весь веб-просмотр переходит на веб-сайт YouTube, а не только на iframe. (без возможности вернуться, вам нужно убить приложение), поведение, которое я хочу предотвратить.

В Android API-интерфейс плагина Cordova предоставляет метод onOverrideUrlLoading, который должен иметь возможность блокировать нежелательные переходы. (сам ещё не проверял)

Я не нашел подобного метода ни в классах ios cordova, ни в ios webview api. но я не совсем знаком с ios.

Я также пробовал (на Android и iOS) атрибут песочницы iframe https://developer.mozilla.org/en/docs/Web/HTML/Element/iframe#attr-sandbox Это работает для предотвращения сценариев (не то чтобы мне нужен этот банкомат, просто чтобы проверить, является ли атрибут что-то делать), но не для предотвращения навигации (чтобы включить навигацию, вы должны добавить allow-top-navigation, а я этого не сделал)


person Bnaya    schedule 14.11.2014    source источник


Ответы (1)


Используйте атрибут песочницы html5, не разрешая разрешать верхнюю навигацию и разрешать всплывающие окна.

<iframe sandbox="allow-scripts allow-same-origin"...

Проверено на: ios 8/7.1, android 4.4

В моей предыдущей проверке я добавил разрешение всплывающих окон к значению песочницы.

<iframe sandbox="allow-scripts allow-same-origin allow-popups"...
person Community    schedule 14.11.2014
comment
Это здорово, но я бы хотел, чтобы ссылки по-прежнему открывались, только внутри iframe. Это возможно? - person Papipo; 24.11.2015