@wisdomgarden/cloak-plugin-darkmode 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +13 -0
- package/README-EN.md +95 -0
- package/README.md +95 -0
- package/index.d.ts +25 -0
- package/index.mjs +22 -0
- package/package.json +26 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
Copyright (c) 2014 WisdomGarden
|
|
2
|
+
|
|
3
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
you may not use this file except in compliance with the License.
|
|
5
|
+
You may obtain a copy of the License at
|
|
6
|
+
|
|
7
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
|
|
9
|
+
Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
See the License for the specific language governing permissions and
|
|
13
|
+
limitations under the License.
|
package/README-EN.md
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
[**English Version**](./README-EN.md) | [中文版](./README.md)
|
|
2
|
+
|
|
3
|
+
# DarkMode Plugin
|
|
4
|
+
|
|
5
|
+
Detect and monitor dark mode changes on HarmonyOS.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Installation
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
ohpm install @wisdomgarden/cloak-plugin-darkmode
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Usage
|
|
18
|
+
|
|
19
|
+
### Native Side
|
|
20
|
+
|
|
21
|
+
Modify `EntryAbility.ets`:
|
|
22
|
+
|
|
23
|
+
```typescript
|
|
24
|
+
import { CloakPluginDarkMode } from '@wisdomgarden/cloak-plugin-darkmode';
|
|
25
|
+
import { Configuration } from '@kit.AbilityKit';
|
|
26
|
+
|
|
27
|
+
const darkModePlugin = new CloakPluginDarkMode();
|
|
28
|
+
|
|
29
|
+
onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
|
|
30
|
+
const cloak = new Cloak(this);
|
|
31
|
+
cloak.addPlugins([
|
|
32
|
+
// ... other plugins
|
|
33
|
+
darkModePlugin
|
|
34
|
+
]);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
onConfigurationUpdate(newConfig: Configuration): void {
|
|
38
|
+
darkModePlugin.onConfigurationUpdate(newConfig);
|
|
39
|
+
}
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### Frontend Side
|
|
43
|
+
|
|
44
|
+
```typescript
|
|
45
|
+
// Get current dark mode state
|
|
46
|
+
const { isDarkModeOn } = await window.Cloak.plugins.DarkMode.isDarkMode();
|
|
47
|
+
|
|
48
|
+
// Listen for dark mode changes
|
|
49
|
+
const handlerId = window.Cloak.plugins.DarkMode.addEventListener('darkModeChange', (event) => {
|
|
50
|
+
console.log(event.isDarkModeOn);
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
// Remove listener
|
|
54
|
+
window.Cloak.plugins.DarkMode.removeEventListener('darkModeChange', handlerId);
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## API
|
|
60
|
+
|
|
61
|
+
### `isDarkMode()`
|
|
62
|
+
|
|
63
|
+
Get the current dark mode state.
|
|
64
|
+
|
|
65
|
+
**Returns**: `Promise<DarkModeResult>`
|
|
66
|
+
|
|
67
|
+
#### `DarkModeResult`
|
|
68
|
+
|
|
69
|
+
| Field | Type | Description |
|
|
70
|
+
|---|---|---|
|
|
71
|
+
| `isDarkModeOn` | `boolean` | `true` means dark mode is on |
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
### `addEventListener(event, handler)`
|
|
76
|
+
|
|
77
|
+
Listen for dark mode changes.
|
|
78
|
+
|
|
79
|
+
| Parameter | Type | Description |
|
|
80
|
+
|---|---|---|
|
|
81
|
+
| `event` | `'darkModeChange'` | Event name |
|
|
82
|
+
| `handler` | `(event: DarkModeResult) => void` | Callback function |
|
|
83
|
+
|
|
84
|
+
**Returns**: `string` handlerId, used to remove the listener.
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
### `removeEventListener(event, handlerId?)`
|
|
89
|
+
|
|
90
|
+
Remove a listener.
|
|
91
|
+
|
|
92
|
+
| Parameter | Type | Description |
|
|
93
|
+
|---|---|---|
|
|
94
|
+
| `event` | `'darkModeChange'` | Event name |
|
|
95
|
+
| `handlerId` | `string?` | If not provided, all listeners for the event will be removed |
|
package/README.md
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
[**中文版**](./README.md) | [English Version](./README-EN.md)
|
|
2
|
+
|
|
3
|
+
# DarkMode 插件
|
|
4
|
+
|
|
5
|
+
用于检测和监听 HarmonyOS 暗黑模式变化。
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 安装
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
ohpm install @wisdomgarden/cloak-plugin-darkmode
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## 使用方法
|
|
18
|
+
|
|
19
|
+
### 原生侧
|
|
20
|
+
|
|
21
|
+
修改 `EntryAbility.ets`:
|
|
22
|
+
|
|
23
|
+
```typescript
|
|
24
|
+
import { CloakPluginDarkMode } from '@wisdomgarden/cloak-plugin-darkmode';
|
|
25
|
+
import { Configuration } from '@kit.AbilityKit';
|
|
26
|
+
|
|
27
|
+
const darkModePlugin = new CloakPluginDarkMode();
|
|
28
|
+
|
|
29
|
+
onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
|
|
30
|
+
const cloak = new Cloak(this);
|
|
31
|
+
cloak.addPlugins([
|
|
32
|
+
// ... 其他插件
|
|
33
|
+
darkModePlugin
|
|
34
|
+
]);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
onConfigurationUpdate(newConfig: Configuration): void {
|
|
38
|
+
darkModePlugin.onConfigurationUpdate(newConfig);
|
|
39
|
+
}
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### 前端侧
|
|
43
|
+
|
|
44
|
+
```typescript
|
|
45
|
+
// 获取当前暗黑模式状态
|
|
46
|
+
const { isDarkModeOn } = await window.Cloak.plugins.DarkMode.isDarkMode();
|
|
47
|
+
|
|
48
|
+
// 监听暗黑模式变化
|
|
49
|
+
const handlerId = window.Cloak.plugins.DarkMode.addEventListener('darkModeChange', (event) => {
|
|
50
|
+
console.log(event.isDarkModeOn);
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
// 移除监听
|
|
54
|
+
window.Cloak.plugins.DarkMode.removeEventListener('darkModeChange', handlerId);
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## API
|
|
60
|
+
|
|
61
|
+
### `isDarkMode()`
|
|
62
|
+
|
|
63
|
+
获取当前暗黑模式状态。
|
|
64
|
+
|
|
65
|
+
**返回值**:`Promise<DarkModeResult>`
|
|
66
|
+
|
|
67
|
+
#### `DarkModeResult`
|
|
68
|
+
|
|
69
|
+
| 字段 | 类型 | 说明 |
|
|
70
|
+
|---|---|---|
|
|
71
|
+
| `isDarkModeOn` | `boolean` | `true` 表示当前为暗黑模式 |
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
### `addEventListener(event, handler)`
|
|
76
|
+
|
|
77
|
+
监听暗黑模式变化。
|
|
78
|
+
|
|
79
|
+
| 参数 | 类型 | 说明 |
|
|
80
|
+
|---|---|---|
|
|
81
|
+
| `event` | `'darkModeChange'` | 事件名 |
|
|
82
|
+
| `handler` | `(event: DarkModeResult) => void` | 回调函数 |
|
|
83
|
+
|
|
84
|
+
**返回值**:`string` handlerId,用于移除监听。
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
### `removeEventListener(event, handlerId?)`
|
|
89
|
+
|
|
90
|
+
移除监听。
|
|
91
|
+
|
|
92
|
+
| 参数 | 类型 | 说明 |
|
|
93
|
+
|---|---|---|
|
|
94
|
+
| `event` | `'darkModeChange'` | 事件名 |
|
|
95
|
+
| `handlerId` | `string?` | 不传则移除该事件所有监听 |
|
package/index.d.ts
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Plugin } from "@wisdomgarden/cloak";
|
|
2
|
+
|
|
3
|
+
export interface DarkModeResult {
|
|
4
|
+
isDarkModeOn: boolean;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
export type DarkModeEventMap = {
|
|
8
|
+
darkModeChange: DarkModeResult;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export interface DarkModePlugin extends Plugin {
|
|
12
|
+
isDarkMode(): Promise<DarkModeResult>;
|
|
13
|
+
addEventListener<K extends keyof DarkModeEventMap>(
|
|
14
|
+
event: K,
|
|
15
|
+
handler: (event: DarkModeEventMap[K]) => void
|
|
16
|
+
): string;
|
|
17
|
+
removeEventListener(event: string, handlerId?: string): void;
|
|
18
|
+
clearAllEvents(): void;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
declare module "@wisdomgarden/cloak" {
|
|
22
|
+
export interface CloakPlugins {
|
|
23
|
+
DarkMode: DarkModePlugin;
|
|
24
|
+
}
|
|
25
|
+
}
|
package/index.mjs
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
let PluginInstance = null;
|
|
2
|
+
const PluginName = 'Http'
|
|
3
|
+
const register = (plugin) => {
|
|
4
|
+
if (plugin.registered) {
|
|
5
|
+
return;
|
|
6
|
+
}
|
|
7
|
+
plugin.registered = true;
|
|
8
|
+
PluginInstance = plugin;
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
(() => {
|
|
12
|
+
window.__CloakPluginsRegister = window.__CloakPluginsRegister || {};
|
|
13
|
+
window.__CloakPluginsRegister[PluginName] = register;
|
|
14
|
+
if (Cloak && Cloak.plugins && Cloak.plugins[PluginName]) {
|
|
15
|
+
register(Cloak.plugins[PluginName]);
|
|
16
|
+
}
|
|
17
|
+
})();
|
|
18
|
+
|
|
19
|
+
export {
|
|
20
|
+
register,
|
|
21
|
+
PluginInstance as Http
|
|
22
|
+
};
|
package/package.json
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@wisdomgarden/cloak-plugin-darkmode",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"description": "Dark mode detection and monitoring plugin for Cloak applications.",
|
|
5
|
+
"author": "WisdomGarden",
|
|
6
|
+
"repository": "https://github.com/WisdomGardenInc/CloakPlugins/tree/master/plugins/CloakPluginDarkMode",
|
|
7
|
+
"homepage": "https://tronclass.com.cn/",
|
|
8
|
+
"license": "Apache-2.0",
|
|
9
|
+
"main": "index.mjs",
|
|
10
|
+
"module": "index.mjs",
|
|
11
|
+
"type": "module",
|
|
12
|
+
"scripts": {
|
|
13
|
+
"prepack": "cp ../../README*.md . && cp ../../LICENSE ."
|
|
14
|
+
},
|
|
15
|
+
"keywords": [
|
|
16
|
+
"Cloak",
|
|
17
|
+
"CloakPlugin",
|
|
18
|
+
"HarmonyOS",
|
|
19
|
+
"Cordova",
|
|
20
|
+
"Capacitor",
|
|
21
|
+
"Hybrid",
|
|
22
|
+
"H5",
|
|
23
|
+
"darkmode",
|
|
24
|
+
"dark-mode"
|
|
25
|
+
]
|
|
26
|
+
}
|