Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

mobi格式是怎么解析的 #42

Closed
alexmay21 opened this issue Nov 11, 2020 · 10 comments
Closed

mobi格式是怎么解析的 #42

alexmay21 opened this issue Nov 11, 2020 · 10 comments

Comments

@alexmay21
Copy link

hello,想问下mobi格式的文件是怎么解析的呢

@troyeguo
Copy link
Collaborator

您好,mobi格式用到了这个文件 https://github.com/troyeguo/koodo-reader/blob/master/src/utils/mobiUtil.js
首先用这个文件提取文字,解析成txt格式,再将txt格式转化为epub格式,再用epub.js展示图书内容

@mrmarktyy
Copy link

@troyeguo https://imclient.herokuapp.com/mobiviewer/
这个插件可以直接读取本地mobi,我不知道它是怎么实现的
你可以看下是不是有什么启发

@troyeguo
Copy link
Collaborator

@troyeguo https://imclient.herokuapp.com/mobiviewer/
这个插件可以直接读取本地mobi,我不知道它是怎么实现的
你可以看下是不是有什么启发

感谢您的建议,其实解析mobi的这个文件我也是直接从类似的项目中直接复制过来的,但最难的不是展示mobi文件,而是记录阅读位置,进度跳转,解析目录,这些功能还是只能借助epub.js来实现,目前比较棘手的问题是mobi文件到epub文件的转换过程中,如何保留图片。

@mrmarktyy
Copy link

mrmarktyy commented Dec 22, 2020

谢谢回答。我也有点理解这个问题了。
我正在尝试做个mobi/epub的读书app(用RN实现)

正在研究怎么做mobi文件的翻页功能。。

@troyeguo
Copy link
Collaborator

谢谢回答。我也有点理解这个问题了。
我正在尝试做个mobi/epub的读书app(用RN实现)

正在研究怎么做mobi文件的翻页功能。。

我之前也打算用RN和expo开发Koodo Reader的移动版,设计稿已经画好了,App的模板也已经开发完成了,但我发现epub.js的RN版不支持在expo的managed workflow下运行,但eject之后又无法使用expo publish来生成安装包,所以就作罢了。请问你的app是怎么解析epub文件的?

@mrmarktyy
Copy link

mrmarktyy commented Dec 23, 2020

我打算都用WebView来对付了,对epub和mobi的展现都用浏览器里实现。
从app里读取文件系统文件后也可以传送给webview

但我发现epub.js的RN版不支持在expo的managed workflow下运行,但eject之后又无法使用expo publish来生成安装包

嗯 感觉需要针对RN重写epubjs里的render logic把,

@troyeguo
Copy link
Collaborator

troyeguo commented Dec 23, 2020

我打算都用WebView来对付了,对epub和mobi的展现都用浏览器里实现。
从app里读取文件系统文件后也可以传送给webview

但我发现epub.js的RN版不支持在expo的managed workflow下运行,但eject之后又无法使用expo publish来生成安装包

嗯 感觉需要针对RN重写epubjs里的render logic把,

我找到了一个类似的项目,也是用webview和epubjs来实现的,https://github.com/farshed/duofolio 但它也需要修改安卓文件夹下的gradle文件,才能实现webview打开指定的html文件,你的项目是在原生react native 环境下开发的吗?

@mrmarktyy
Copy link

我目前还是用Expo,确实在特定需求中很受限。

因为webview和rn是互通的,不知道能不能把html发送给webview, 然后webview里再通过innerHTML之类的方法来render

@mumujj
Copy link

mumujj commented Oct 18, 2022

问一下mobi格式的目录和内容中的图片怎么读取的呢?

@asgsdbrseg
Copy link

谢谢回答。我也有点理解这个问题了。 我正在尝试做个mobi/epub的读书app(用RN实现)

正在研究怎么做mobi文件的翻页功能。。

进度查询

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants