Kyl*_*yle 6 cocoa webkit webview
我已经将一个WebView添加到Cocoa应用程序中,并且我正在尝试找出哪个委托可以用来检测导航更改的时间(用户单击链接,或者javascript触发以更改位置等).
该网页视图类引用包含四个代表(WebFrameLoadDelegate协议参考,WebPolicyDelegate协议参考,WebResourceLoadDelegate协议参考和WebUIDelegate协议参考)和我都互相看着这些,但我似乎无法找到如何检测这一点.我错过了一些明显的或者没有办法得到这个吗?
tldr - 试图弄清楚如何在WebView更改URL时设置委托来获取事件.(具体来说,我需要知道新的URL是什么).
使用WebKit(即MacOS X),然后可能是跟踪请求的最佳位置webView:identifierForInitialRequest:fromDataSource:,虽然webView:resource:willSendRequest:redirectResponse:fromDataSource:也很好,并且具有允许您修改请求的优点.
与iOS一样,您可以使用[request URL].
设置此通道[webView setResourceLoadDelegate:self];.
在我看来,资源加载委托(如上所述)提供了比策略委托方法更好的处理请求的选项.
我建议你实现这两种WebPolicyDelegate方法:
-webView:decidePolicyForNavigationAction:request:frame:decisionListener:
-webView:decidePolicyForNewWindowAction:request:newFrameName:decisionListener:
Run Code Online (Sandbox Code Playgroud)
这将告诉您导航到的新URL,但也让您有机会更改默认行为.例如,您可能没有WebKit尝试打开新窗口.
| 归档时间: |
|
| 查看次数: |
5213 次 |
| 最近记录: |