ios - WebView iOS - 保持两个 WebView 100% 同步

标签 ios uiwebview

有没有办法让两个 webview 同步。

我想使用 Airplay 在第二个屏幕上显示相同的 WebView,但比例为 16:9。

我设法为第二个屏幕(16:9)创建了一个单独的窗口并加载了我的本地 html 文件,但我的 iPad 屏幕上的操作与第二个屏幕不同步。

我只有两个独立的窗口。 我真的很想使用第二个屏幕来显示更大的 HTML 文件。

最佳答案

“同步”在 OP 中未指定,但考虑到 Web View 状态的最基本表示是它的 request,您可以尝试以下操作:在用户所在的 webView 的 Controller 中控制(称之为“webViewA”),声明符合 UIWebViewDelegate:

self.webViewA.delegate = self;

然后:

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
    UIWebView *webViewB = // presuming you have a way to get this pointer
    [webViewB loadRequest:request];
}

您可以通过将同一 Controller 声明为符合 UIScrollViewDelegate 来实现滚动同步(可能是状态的下一个最重要的部分),然后:

self.webViewA.scrollView.delegate = self;

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    UIWebView *webViewB = // ...
    [webViewB setContentOffset:scrollView.contentOffset animated:YES];
}

关于ios - WebView iOS - 保持两个 WebView 100% 同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38379532/

相关文章:

ios - Objective-C - 如何在 iOS 模拟器上强制低内存

ios - swift 将表格 View 的大小调整到最后一行

ios - 我可以解决 UIWebView 中的 iOS 8 Voiceover 错误吗?

ios - 获取接触点位置

ios - 使 UIPageControl 在每个页面上停止

ios - FMDB.database.beginTransaction 和 FMDB.databaseQueue.inTransaction 的区别

ios - 推送基于 swift 的应用程序所需的 Xcode 版本

ios - UITableViewCell - 拖动整行来移动?

ios - 防止 UIWebView 无限期分配内存(NSURLCache 显然不起作用)

ios - 清除 UIWebview 缓存