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

目前我正在尝试使用WebViewinside 创建一个 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下安装Mongodb

Mac OS X安装 Scrapy

如何在 OS X 上使用 LaTeX

制作 Mac OS X El Capitan 的U盘引导安装

如何在 Mac OS X 上装设 LaTeX 以及 CJK 套件

如何 在Mac OS X 上的 Appium 上 Run *.app 文件