objective-c - Cocoa:从webview获取URL

标签 objective-c macos cocoa

我是 Mac 编程新手。我想阻止 webview 中的一些 URL。我已经放置了一个 webview 并在其中打开一个特定的 URL。当用户单击某些链接时,我想检查(通过获取 URL)URL。我想知道可以从哪个委托(delegate)函数获取当前 URL。

最佳答案

您需要设置policyDelegate属性,然后实现此方法:

- (void)webView:(WebView *)webView decidePolicyForNavigationAction:(NSDictionary *)actionInformation request:(NSURLRequest *)request frame:(WebFrame *)frame decisionListener:(id < WebPolicyDecisionListener >)listener {
  NSInteger actionType = [[actionInformation valueForKey:WebActionNavigationTypeKey] integerValue];
  if( actionType == WebNavigationTypeLinkClicked) {
    NSURL *url = [actionInformation valueForKey: WebActionOriginalURLKey];
    if ( !url) {
      url = request.URL;
    }
    if ( YES) { // your custom check
      [listener use];
    } else {
      [listener ignore];
    }
  } else {
    [listener use];
  }
}

关于objective-c - Cocoa:从webview获取URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18588137/

相关文章:

ios - 主视图下的半隐藏 View 显示在 alpha segue 中

objective-c - NSSpeechSynthesizer 不写入 AIFF 文件

macos - MacOS Exposé 背后的逻辑

macos - cocoa 脚本 : Accept and return NSData

objective-c - Objective-C 类(NSObject 子类)的基础 header 而不是 cocoa header

objective-c - Objective-C 中的模板?

objective-c - 使用单元测试时 IB Designables 错误

macos - 在Mac OS上安装Virtual Box-未加载内核驱动程序

swift - NSTableView 不会调用 viewForTableColumn

swift - 观察 NSTextView 中的文本变化