У меня есть приложение на основе WebKit. Когда пользователь инициирует действие, открывающее новую страницу (например, щелчок по ссылке), я хотел бы перехватить этот URL-адрес и выбрать, чтобы открыть его в своем приложении или выбросить его в Safari.Как определить пользовательский запрос в Cocoa WebView?
В идеале я хотел бы определить первый запрос в последовательности загрузки или тот, который был непосредственно результатом действия пользователя. В качестве альтернативы, было бы достаточно, если бы я мог идентифицировать изменения в URL верхнего уровня в фрейме, с оговоркой, что мне нужно иметь возможность отменить запрос, если я решит отскочить его на Safari.
Я реализовал webView: solvePolicyForNavigationAction: request: frame: decisionListener, и я могу видеть все запросы, сделанные во время загрузки страницы. Оба запроса, вызванные пользователем, а также те, что были вызваны Javascript, REST-вызовами, такие вещи.
Для простых ссылок я могу получить WebActionNavigationType из информации о действиях. Но если пользователь нажимает на элемент с обработчиком Javascript onclick(), который, в свою очередь, переходит на другую страницу, тип навигации будет «другим» и неотличим от всех других запросов Javascript (т. Е. Вторичные вызовы REST, возникающие из оригинала запрос).
Кто-нибудь другой справился с этим? Любые указатели? Благодаря!