【问题标题】:MacOS/OSX Webview not opening external linksMacOS/OSX Webview 未打开外部链接
【发布时间】:2017-03-29 11:06:48
【问题描述】:
我有一个基本的WebView 加载和外部网页。
外部链接在单击时不会加载/执行任何操作(应在 web 视图内)。内部链接按预期加载
我没有勾选/允许/错过哪个框?
【问题讨论】:
标签:
objective-c
macos
webview
【解决方案1】:
您需要定义这两种方法(一种来自 WebPolicyDelegate,另一种来自 WebUIDelegate)来打开每个域的每个页面,包括应该在不同选项卡或窗口中打开的页面(尽管它将在同一个 WebView 中打开)。
在我的例子中,我创建了一个 WebView 子类 (VMWebView) 来为我处理这个问题:
@implementation VMWebView
-(void)awakeFromNib
{
self.UIDelegate = self;
self.policyDelegate = self;
}
-(void)webView:(WebView *)webView decidePolicyForNavigationAction:(NSDictionary *)actionInformation request:(NSURLRequest *)request
frame:(WebFrame *)frame decisionListener:(id<WebPolicyDecisionListener>)listener
{
// Opens everything
[listener use];
}
-(WebView *)webView:(WebView *)sender createWebViewWithRequest:(NSURLRequest *)request
{
// Opens new tab/window pages
return sender;
}
@end
检查这是否适合你。