我正在我的项目中使用https://github.com/rsms/chromium-tabs并且我已经创建了我的应用程序,因此这些选项卡已注册到 WebView。当我调试时,我注意到当我查看 Youtube 视频或任何 Flash 内容时,我切换了标签,然后切换回重新加载的内容或重新启动视频。有什么理由会发生这种情况。
当一个选项卡被选中时,它被设置: [self becomeFirstResponder];
除此之外,我没有发现其他连接方式,闪光灯会重置,页面的其余部分将保持不变。每当它不可见时,我相信它是 WebView 中的一个设置。
对于下面的评论:
我遵循 Github 上的示例并使用 MyTabContents.mm 创建内容。还使用了自定义 webview。
MyTabContents.mm:
-(id)initWithBaseTabContents:(CTTabContents*)baseContents {
if (!(self = [super initWithBaseTabContents:baseContents])) return nil;
ProgressWebView *wv = [[ProgressWebView alloc] initWithFrame:NSZeroRect];
[wv setProgressDelegate:self];
[[wv mainFrame] loadRequest:[[NSURLRequest alloc] initWithURL:[NSURL URLWithString:@"https://google.com"]]];
[wv setShouldUpdateWhileOffscreen:YES];
webView = wv;
// Create a NSScrollView to which we add the NSTextView
NSScrollView *sv = [[NSScrollView alloc] initWithFrame:NSZeroRect];
[sv setDocumentView:wv];
[sv setHasVerticalScroller:NO];
// Set the NSScrollView as our view
self.view = sv;
return self;
}
AppDelegate.mm:
- (void)applicationDidFinishLaunching:(NSNotification *)notification {
CTBrowserWindowController* windowController =
[[CTBrowserWindowController alloc] initWithBrowser:[MyBrowser browser]];
[windowController.browser addBlankTabInForeground:YES];
[windowController showWindow:self];
}
我的浏览器.mm:
-(CTTabContents*)createBlankTabBasedOn:(CTTabContents*)baseContents {
// Create a new instance of our tab type
MyTabContents *contents = [[MyTabContents alloc]
initWithBaseTabContents:baseContents];
[self changeLayout];
return [contents autorelease];
}