В приложении Ioni c Cordova как разрешить открытие ссылки в системном браузере по контенту разного происхождения - PullRequest
0 голосов
/ 05 марта 2020

My ioni c приложение предоставляет iframe для рекламного сервиса различного происхождения, который загружает HTML баннеры. Когда пользователь нажимает на баннер HTML, ожидается, что эта ссылка откроется в системном браузере. Рекламный сервис использует window.open (), и именно здесь браузер генерирует следующую ошибку (имена изменены, чтобы сделать ее проще).

Небезопасно JavaScript попытка инициировать навигацию для фрейма с URL-адресом 'http://localhost/send-money' из фрейма с URL-адресом 'https://sample.test.com/t17/'. Фрейм, пытающийся выполнить навигацию, нацелен на свое окно верхнего уровня, но не имеет того же происхождения, что и его цель, и не получил жест пользователя.

У меня есть белый список test.com в моей конфигурации. xml, который имеет позволил мне загружать HTML контент из другого источника в iframe моего приложения ioni c. Но как разрешить открывать ссылки из этого HTML различного происхождения (test.com) в системном браузере. Я ищу версии Android и iOS, очевидно.

1 Ответ

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

Я решил эту проблему, введя атрибут sandbox в элемент iframe. HTML с test.com использовал window.open(target), чтобы открыть ссылку в экземпляре браузера. Доступно несколько токенов, но минимум, необходимый для его работы на Android.

<!--incomplete line below-->    
<iframe sandbox="allow-top-navigation allow-scripts allow-popups"
:
...