@wisdomgarden/cloak-plugin-jpush
Version:
Send HarmonyOS Notification using JPush
178 lines (140 loc) • 5.23 kB
Markdown
[中文版](./README.md) | [**English Version**](./README-EN.md)
# CloakPluginJpush
CloakPluginJpush is a plugin for the Cloak framework, designed to integrate JPush notification service into Cloak applications.
This plugin is built on top of the official JPush [/push](https://ohpm.openharmony.cn/#/cn/detail/@jg%2Fpush)
## Usage
### Prerequisites
> Install Cloak framework `@wisdomgarden/cloak`
>
> For more details, refer to [@wisdomgarden/cloak](https://ohpm.openharmony.cn/#/cn/detail/%2Fcloak)
1. Install CloakPluginJpush plugin
```bash
ohpm install /cloak-plugin-jpush
npm install /cloak-plugin-jpush # optional
```
2. Platform Configuration
Refer to JPush documentation: [Configure HMOS platform information, signing, and JPush platform settings](https://docs.jiguang.cn/jpush/client/HarmonyOS/hmos_guide#%E9%9B%86%E6%88%90%E6%96%B9%E5%BC%8F)
3. Import the plugin in `entry/src/main/ets/entryability/EntryAbility.ets`
```javascript
new Cloak(this, [new CloakPluginJpush(
{
channel: isDebug ? "Development" : "Production",
appKey: "xxxxxx",
isDebug,
want: jpushMessageWant ? want : null
}
)]);
```
In `entry/src/main/module.json5`, configure the following:
```json
{
// ...
"module": {
"abilities": [
{
// ...
"metadata": [
{
"name": "client_id",
// en: Get the client_id corresponding to the application under the project on the hmos platform (note: not the project's client_id)
"value": "xxxxx"
}
],
"skills": [
{
"entities": [
"entity.system.home"
],
"actions": [
"action.system.home"
]
},
{
"actions": [
"action.ohos.push.listener"
]
}
]
}
],
}
// ...
}
```
4. You can now use the plugin in your H5 code
```javascript
// Example usage
await Cloak.plugins.Jpush.init();
await Cloak.plugins.Jpush.setAlias(1, 'user123');
```
5. If you're using TypeScript, install the NPM package for type support
```bash
npm install /cloak-plugin-jpush
```
### Example Code
#### Initialize and Listen to Events
```javascript
// Initialize plugin
await Cloak.plugins.Jpush.init();
// Set debug mode
Cloak.plugins.Jpush.setDebugMode(true);
// Listen for notification click events
Cloak.plugins.Jpush.addEventListener('jpush.openNotification', (event) => {
console.log('User clicked notification:', event);
});
// Listen for custom message events
Cloak.plugins.Jpush.addEventListener('jpush.receiveMessage', (event) => {
console.log('Received custom message:', event);
});
// Get registration ID
const registrationId = await Cloak.plugins.Jpush.getRegistrationId();
console.log('Registration ID:', registrationId);
```
#### Tags and Alias Operations
```javascript
// Set alias
const aliasResult = await Cloak.plugins.Jpush.setAlias(1, 'user123');
console.log('Set alias result:', aliasResult);
// Add tags
const tagsResult = await Cloak.plugins.Jpush.addTags(1, ['vip', 'level1']);
console.log('Add tags result:', tagsResult);
```
### Core Interface
```typescript
interface JpushPlugin extends Plugin {
addEventListener(event: string, handler: (event: ESObject) => void): string;
init(): Promise<boolean>;
setDebugMode(isDebug: boolean): void;
setBadge(badgeNumber: number): void;
getRegistrationId(): Promise<string>;
resumePush(): void;
stopPush(): void;
isPushStopped(): boolean;
setAlias(sequence: number, alias: string): Promise<any>;
getAlias(sequence: number): Promise<any>;
deleteAlias(sequence: number): Promise<any>;
addTags(sequence: number, tags: string[]): Promise<any>;
cleanTags(sequence: number): Promise<any>;
getTags(sequence: number, curr?: number): Promise<any>;
checkTagBindState(sequence: number, tag: string): Promise<any>;
setProcessTimeout(timeout: number): void;
}
```
### Event Types
- `jpush.openNotification`: Triggered when user clicks a notification
- `jpush.receiveMessage`: Triggered when receiving a custom message
---
# About **Cloak**
**Cloak** is a lightweight hybrid development framework for **HarmonyOS**, inspired by [Cordova](https://cordova.apache.org/) and [Capacitor](https://capacitorjs.com/), but with **simpler implementation** and **better performance**.
Enables rapid conversion of web applications to native HarmonyOS apps with plugin-based native API access.
---
## Core Features
- **Quick Packaging**
Compile H5/web apps into HarmonyOS applications within minutes
- **Native API Access**
Extend functionality through HarmonyOS native plugins
- **Optimized WebView**
High-performance WebView container with hardware acceleration
- **Plugin Development**
Easily create HarmonyOS native plugins using TypeScript/ArkTS
For more information about the Cloak framework, please visit: https://github.com/WisdomGardenInc/Cloak