fix epub reader playback and trial navigation
This commit is contained in:
@@ -15,6 +15,18 @@ extension RDEPUBReaderController: RDEpubReaderDataSource, RDEpubReaderPageProvid
|
||||
pageIdentifier(readerView: readerView, pageNum: index)
|
||||
}
|
||||
|
||||
public func readerView(
|
||||
_ readerView: RDEpubReaderView,
|
||||
shouldPreloadPageAt index: Int
|
||||
) -> Bool {
|
||||
// 试读墙由宿主提供唯一 UIView,不允许预加载创建另一容器并抢走它。
|
||||
guard index != trialWallPageIndex else { return false }
|
||||
// 交互型固定版式页会在文档加载阶段触发页内音频/时间轴。
|
||||
// 预加载会把相邻章节一并载入,导致当前章打开时多段音频同时播放。
|
||||
// 这些页面只在真正展示时再创建,确保仅当前查看章节发声。
|
||||
return request(for: index)?.isFixedLayout != true
|
||||
}
|
||||
|
||||
public func readerViewTopChrome(_ readerView: RDEpubReaderView) -> UIView? {
|
||||
topToolView(readerView: readerView)
|
||||
}
|
||||
@@ -66,6 +78,7 @@ extension RDEPUBReaderController: RDEpubReaderDataSource, RDEpubReaderPageProvid
|
||||
pageNumber: pageNum + 1,
|
||||
totalPages: pageCountOfReaderView(readerView: readerView),
|
||||
configuration: configuration,
|
||||
contentInsets: readerContext.currentTextContentInsets(pageIndex: pageNum),
|
||||
chapterCFIMap: resolvedPage.chapter.chapterOffsetMap.cfiMap,
|
||||
chapterFragmentOffsets: resolvedPage.chapter.chapterOffsetMap.fragmentOffsets,
|
||||
highlights: textHighlights(for: resolvedPage.page),
|
||||
@@ -89,7 +102,8 @@ extension RDEPUBReaderController: RDEpubReaderDataSource, RDEpubReaderPageProvid
|
||||
contentView.configureLoading(
|
||||
pageNumber: pageNum + 1,
|
||||
totalPages: pageCountOfReaderView(readerView: readerView),
|
||||
configuration: configuration
|
||||
configuration: configuration,
|
||||
contentInsets: readerContext.currentTextContentInsets(pageIndex: pageNum)
|
||||
)
|
||||
return contentView
|
||||
}
|
||||
@@ -111,6 +125,7 @@ extension RDEPUBReaderController: RDEpubReaderDataSource, RDEpubReaderPageProvid
|
||||
pageNumber: pageNum + 1,
|
||||
totalPages: textBook.pages.count,
|
||||
configuration: configuration,
|
||||
contentInsets: readerContext.currentTextContentInsets(pageIndex: pageNum),
|
||||
chapterCFIMap: textBook.chapterData(for: page.href)?.chapter.cfiMap,
|
||||
chapterFragmentOffsets: textBook.chapterData(for: page.href)?.chapter.fragmentOffsets ?? [:],
|
||||
highlights: textHighlights(for: page),
|
||||
|
||||
Reference in New Issue
Block a user