0

我正在我的项目中使用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];
}
4

0 回答 0