OS X:-webView:shouldStartLoadWithRequest:navigationType: 对于 WebView
Posted
技术标签:
【中文标题】OS X:-webView:shouldStartLoadWithRequest:navigationType: 对于 WebView【英文标题】:OS X: -webView:shouldStartLoadWithRequest:navigationType: For WebView 【发布时间】:2015-08-27 13:06:51 【问题描述】:适用于 ios 设备的 Cocoa Touch 框架有一个名为 UIWebView
的类和一个名为 UIWebViewDelegate
的协议。该协议有方法:
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
目前我正在尝试使用WebView
inside 创建一个 OS X 应用程序。我需要一个应该被称为BEFORE WebView
的方法被加载,它可以在访问请求时允许(或不)继续请求以加载WebView
。是否有任何协议或其他方式在 Cocoa 框架中具有此功能?
【问题讨论】:
【参考方案1】:为 WebView 类实现 WebFrameLoadDelegate 协议。
https://developer.apple.com/library/mac/documentation/Cocoa/Reference/WebKit/Protocols/WebFrameLoadDelegate_Protocol/
【讨论】:
我应该使用哪种方法?我应该如何实现上述所需的功能?【参考方案2】:首先,您需要设置frameLoadDelegate
。比你可以使用(void)webView:(WebView *)sender
didStartProvisionalLoadForFrame:(WebFrame *)frame
方法。当 web 框架收到请求时调用此方法。像这样的:
(void)webView:(WebView *)sender didStartProvisionalLoadForFrame:(WebFrame *)frame
if(myWebView.mainFrameURL==@"http://sample.url")
[myWebView stopLoading:nil];
【讨论】:
我看到[myWebView stopLoading:nil];
这会取消当前请求吗?
在发送HTTP请求之前有什么方法可以执行吗?以上是关于OS X:-webView:shouldStartLoadWithRequest:navigationType: 对于 WebView的主要内容,如果未能解决你的问题,请参考以下文章
制作 Mac OS X El Capitan 的U盘引导安装