@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 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
+ }