49 lines
3.3 KiB
Markdown
49 lines
3.3 KiB
Markdown
|
# Module WebUI
|
|||
|
|
|||
|
KernelSU のモジュールは、ブートスクリプトの実行やシステムファイルの修正に加えて、UI インターフェースの表示やユーザーとの対話もサポートしています。
|
|||
|
|
|||
|
モジュールは、任意の Web 技術を通じて HTML + CSS + JavaScript のページを作成することができます。KernelSU のマネージャーは WebView を通じてこれらのページを表示します。また、シェルコマンドの実行など、システムと対話するためのいくつかのAPIを提供しています。
|
|||
|
|
|||
|
## webroot ディレクトリ
|
|||
|
|
|||
|
Web リソースファイルは、モジュールのルートディレクトリの `webroot` サブディレクトリに置かれるべきであり、`index.html` という名前のファイルが必ず存在しなければなりません。これがモジュールページのエントリです。Web インターフェイスを含む最もシンプルなモジュール構造は以下の通りです:
|
|||
|
|
|||
|
```txt
|
|||
|
❯ tree .
|
|||
|
.
|
|||
|
|-- module.prop
|
|||
|
`-- webroot
|
|||
|
`-- index.html
|
|||
|
```
|
|||
|
|
|||
|
:::警告
|
|||
|
モジュールをインストールするとき、KernelSU はこのディレクトリのパーミッションと SELinux コンテキストを自動的に設定します。何をしているかわからないのであれば、自分でこのディレクトリのパーミッションを設定しないでください!
|
|||
|
:::
|
|||
|
|
|||
|
ページに css や JavaScript が含まれている場合は、このディレクトリに配置する必要があります。
|
|||
|
|
|||
|
## JavaScript API
|
|||
|
|
|||
|
単なる表示ページであれば、通常の Web ページとの違いはありません。より重要なのは、KernelSU がモジュールの固有機能を実装させるための一連のシステム API を提供することです。
|
|||
|
|
|||
|
KernelSU は JavaScript ライブラリを提供し、[npm で公開しています](https://www.npmjs.com/package/kernelsu)。これを Web ページの JavaScript コードで使用することができます。
|
|||
|
|
|||
|
たとえば、特定の設定を取得したり、プロパティを変更するために、シェルコマンドを実行することができます:
|
|||
|
|
|||
|
```JavaScript
|
|||
|
import { exec } from 'kernelsu';
|
|||
|
|
|||
|
const { errno, stdout } = exec("getprop ro.product.model");
|
|||
|
```
|
|||
|
|
|||
|
別の例として、Webページをフルスクリーンで表示したり、トーストを表示することができます。
|
|||
|
|
|||
|
[API ドキュメント](https://www.npmjs.com/package/kernelsu)
|
|||
|
|
|||
|
既存のAPIがご自身のニーズを満たしていない、または使い勝手が不便である場合、[こちら](https://github.com/tiann/KernelSU/issues)でご提案いただければ幸いです!
|
|||
|
|
|||
|
## いくつかのヒント
|
|||
|
|
|||
|
1. `localStorage` を通常通りに使用してデータを保存することができますが、Manager アプリをアンインストールした後には失われます。永続的に保存する必要がある場合は、自分でいくつかのディレクトリにデータを書き込むことができます。
|
|||
|
2. シンプルなページには、[parceljs](https://parceljs.org/)を使用することをお勧めします。設定が不要で非常に便利です。しかし、フロントエンドの達人である場合や、自分の好みがある場合は、気に入ったものを選んでください!
|