Как лучше открыть ссылку из Webview в safari?
Ссылка скопирована
Сейчас ситуация такая: вы знаете какие-нибудь рабочие варианты открыть url из webview в safari на iOS? Используя только js, или js библиотеки. Все варианты которые указаны в интернете не работают на данный момент.
Нужно решить такую задачу?
Заказать помощь
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Лучший ответ
1
Другие ответы (0)
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопроскомментарий
Вам также может быть интересно
VPN
Как правильно настроить vless для Android TV?
1 ответ
Pyrogram
Как правильно зарегистрировать юзер бота в Telegram?
1 ответ
печатные-платы
Как заставить запускаться программу M3.exe от компании Hanxing AOI в инспекционной машине на Windows 7 Pro?
1 ответ
Telegram
Как добиться, чтобы Telegram прислал мне именно смс код, а не через звонок его диктовал?
1 ответ

На iOS открыть ссылку из WebView именно в Safari “только JavaScript-ом” можно не всегда. Это зависит от того, какой WebView используется: Safari View Controller, WKWebView внутри приложения, Telegram/Instagram browser, Cordova/Capacitor и т.д. В обычном WKWebView JavaScript не имеет права принудительно открыть внешний Safari без участия нативной части приложения.
Если это ваш iOS-приложение с WKWebView, правильное решение — перехватить ссылку в native-коде и открыть через
UIApplication.shared.open. JavaScript может только инициировать переход:window.location.href = 'https://example.com';
А в Swift нужно решить, открывать внутри WebView или снаружи:
func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) { if let url = navigationAction.request.url, navigationAction.navigationType == .linkActivated { UIApplication.shared.open(url) decisionHandler(.cancel) return } decisionHandler(.allow) }
Если это не ваше приложение, а WebView внутри чужого приложения, надёжного способа нет. Можно пробовать обычную ссылку с
target="_blank", но iOS-клиент сам решит, что делать:<a href="https://example.com" target="_blank" rel="noopener">Открыть</a>
Схемы вроде
googlechrome://или старые хаки черезwindow.openсейчас работают нестабильно и зависят от приложения. Safari не предоставляет универсальную публичную URL-схему “открой меня в Safari” для любой страницы из любого WebView.Итог: если WebView ваш — делайте мост JS/native или перехват навигации в WKNavigationDelegate. Если WebView чужой — JavaScript не гарантирует открытие Safari; максимум можно дать обычную внешнюю ссылку и подсказку пользователю открыть в браузере.