2011-01-06 2 views
0

У моего MacOsX есть приложение Cocoa со специальным контроллером/окном, в котором используется WebKit для просмотра. Я только узнал, что просматриваемый контент может иметь ссылки, которые должны открывать новые окна браузера. Хотя я установил следующие два объявления (см. Ниже) для моего веб-браузера - ничего не происходит, когда я нажимаю эти ссылки с моим специализированным окном. Нажатие их из обычного браузера заново откроет окно:Запуск нового окна браузера из пользовательского представления браузера WebKit

[[_webView preferences] setJavaScriptEnabled:YES]; 
[[_webView preferences] setJavaScriptCanOpenWindowsAutomatically:YES]; 

Я пропустил реализацию обратного вызова?

ответ

1

Сделайте себе делегат UI:

[webView setUIDelegate:self]; 

и реализовать webView:createWebViewWithRequest:. Этот метод должен создать и вернуть новый объект WebView и окно для его отображения. Если вы не хотите создавать новое представление программно, вы можете использовать NIB и загружать его.

+0

Я сделал это, и я получаю вызов метода webView: createWebViewWithRequest. однако «запрос» всегда равен нулю. где я могу перехватить URL-адрес ссылки, на которую пользователь нажал? – JasonGenX

+0

Открывается ли окно с помощью javascript? Если это так, запроса может не быть. Если запрос отсутствует, создайте веб-представление/окно без отправки сообщения загрузки. – ughoavgfhw

+0

Хотя это старый вопрос, я хотел бы дать ответ тем, кто здесь: Все вызовы window.open приводят к createWebViewWithRequest: с нулевым запросом, а затем изменение местоположения в этом WebView. –

Смежные вопросы