Какао сделать WKWebView команда + ссылка нажмите, чтобы открыть в новом окне - PullRequest
0 голосов
/ 14 октября 2018

Я пытаюсь заставить WKWebView открывать ссылку в новом окне / вкладке, когда пользователь нажимает клавишу cmd при нажатии на ссылку, как в любом браузере.Я не мог найти нативный API для этого (или, может быть, я просто сосу гуглить).Кто-нибудь может дать мне идею, как я могу реализовать это без грязных хаков?Я пропустил наивный API?

1 Ответ

0 голосов
/ 16 октября 2018

Использовать WKNavigationDelegate .

В процессе навигации будет вызываться метод

- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler;

.Объект WKNavigationAction имеет свойство modifierFlags , которое сообщает вам, была ли нажата клавиша cmd во время щелчков.

Если это так, то делайте все, что хотите, чтобы открыть новое окно / вкладку сновый WKWebView и начинайте загрузку страницы отсюда (я лично отправляю событие со всей информацией, которая будет обработана позже).

Наконец, отмените текущую навигацию веб-просмотра, позвонив по номеру

decisionHandler(WKNavigationActionPolicyCancel) ;
...