89986d5d17
- Background tasks: a JS implementation of the native task module for iOS (NativeBackgroundTasksModule.ios.ts) with the Android module's contract: per-queue order, 3 concurrent chapter downloads, retries with a delay, pause/resume/cancel interruptions, persistence across launches. Tasks run while the app is open; periodic library updates and backups are not scheduled on iOS. The module is Android-only in autolinking now. - Reader assets: WKWebView will not load file:// assets into a page whose base URL is the source's site, so on iOS the reader CSS, JS and font are inlined (scripts/embed-reader-assets.mjs, src/utils/readerAssets). Downloaded chapters get a file: base URL and file access on iOS. Android is unchanged. - Native iOS: downloadFile implemented with URLSession (plugin installs and chapter images); volume-button setActive added as a no-op (it is called on every chapter). - Share receiver stub and silent toasts on iOS; TrackSheet uses showToast. - app.json: bundle id br.dev.marcospaulo.lnreader, http sources allowed, Files sharing, deployment target 16.4. - Fresh installs start with the open-lab plugin repository. - scripts/build-ios-unsigned.sh and docs/ios-sidestore.md. Verified on Linux: tsc, eslint, all Jest suites (plus new iOS queue tests), expo prebuild for iOS, autolinking, and iOS/Android release JS bundles. Not yet built with Xcode or run on a device. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
76 lines
2.8 KiB
Markdown
76 lines
2.8 KiB
Markdown
> **open-lab fork:** branch `ios` adds an iOS build (sideloaded with SideStore and a free Apple ID) and preconfigures the open-lab plugin repository. See [docs/ios-sidestore.md](docs/ios-sidestore.md).
|
|
|
|
<p align="center">
|
|
<a href="https://lnreader.app">
|
|
<img src="./.github/readme-images/icon_new.png" align="center" width="128" />
|
|
</a>
|
|
</p>
|
|
|
|
<h1 align="center">LNReader</h1>
|
|
|
|
<p align="center">
|
|
LNReader is a free and open source light novel reader for Android, inspired by Tachiyomi.
|
|
</p>
|
|
|
|
<div align="center">
|
|
<a href="https://discord.gg/QdcWN4MD63">
|
|
<img alt="Discord Chat" src="https://img.shields.io/discord/835746409357246465.svg?logo=discord&logoColor=white&logoWidth=20&labelColor=5865F2&color=4752C4&label=discord&style=flat">
|
|
</a>
|
|
<a href="https://github.com/lnreader/lnreader/releases">
|
|
<img alt="GitHub Downloads" src="https://img.shields.io/github/downloads/lnreader/lnreader/total?label=downloads&labelColor=27303D&color=0D1117&logo=github&logoColor=FFFFFF&style=flat">
|
|
</a>
|
|
</div>
|
|
|
|
<div align="center">
|
|
<img alt="GitHub Actions Workflow Status" src="https://img.shields.io/github/actions/workflow/status/lnreader/lnreader/build.yml?labelColor=27303D&style=flat">
|
|
<a href="https://github.com/lnreader/lnreader/blob/main/LICENSE">
|
|
<img alt="GitHub" src="https://img.shields.io/github/license/lnreader/lnreader?labelColor=27303D&color=1a73e8&style=flat">
|
|
</a>
|
|
<a title="Crowdin" target="_blank" href="https://crowdin.com/project/lnreader">
|
|
<img src="https://badges.crowdin.net/lnreader/localized.svg">
|
|
</a>
|
|
</div>
|
|
|
|
<h2 align="center">Download</h2>
|
|
|
|
<p align="center">
|
|
<a href="https://github.com/lnreader/lnreader/releases/latest">
|
|
<img alt="GitHub release (latest by date)" src="https://img.shields.io/github/v/release/lnreader/lnreader?label=Stable&labelColor=0d7377&color=084c4e&style=flat">
|
|
</a>
|
|
<a href="https://github.com/lnreader/lnreader/actions/workflows/build.yml">
|
|
<img alt="Build Preview" src="https://github.com/lnreader/lnreader/actions/workflows/build.yml/badge.svg">
|
|
</a>
|
|
</p>
|
|
|
|
<p align="center">
|
|
Get the app from our <a href="https://github.com/lnreader/lnreader/releases">releases page</a>.
|
|
</p>
|
|
|
|
<p align="center">
|
|
<em>Android 7.0 or higher.</em>
|
|
</p>
|
|
|
|
<h2 align="center">Screenshots</h2>
|
|
|
|
<p align="center">
|
|
<img src="./.github/readme-images/screenshots.png" align="center" />
|
|
</p>
|
|
|
|
## Plugins
|
|
|
|
LNReader does not have any affiliation with the content providers available.
|
|
|
|
Plugin requests should be created at [lnreader-plugins](https://github.com/lnreader/lnreader-plugins).
|
|
|
|
## Translation
|
|
|
|
Help translate LNReader into your language on [Crowdin](https://crowdin.com/project/lnreader).
|
|
|
|
## Building & Contributing
|
|
|
|
See [CONTRIBUTING.md](./CONTRIBUTING.md)
|
|
|
|
## License
|
|
|
|
[MIT](https://github.com/lnreader/lnreader/blob/main/LICENSE)
|