@capawesome-team/电容-和机器人-前地服务
电容插件在Android上运行一个前景服务.
通讯
随时更新有关卡帕韦索姆、Capacitor和Ionic生态系统的最新消息和最新消息,因为我们 《卡帕索克通讯》。 。 。 .
兼容性
| 插件版本 | 电容版本 | 状态 |
|---|---|---|
| 8.x.x (英语) | >=8.x.x | 积极支持 |
安装
你可以用我们的 AI 辅助设置 以安装插件. 使用下列命令将 Capawesome 技能添加到您的 AI 工具:
npx skills add capawesome-team/skills
然后使用下列提示:
Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome-team/capacitor-android-foreground-service` plugin in my project.
如果你喜欢 手动设置,通过运行以下命令来安装插件,并遵循下面的平台特定指令:
npm install @capawesome-team/capacitor-android-foreground-service
npx cap sync
机器人
此 API 需要将以下权限添加到您 AndroidManifest.xml 开始之前或之后 application 标签 :
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_LOCATION" />
<!-- Required to keep the app running in the background without any ressource limitations -->
<uses-permission android:name="android.permission.WAKE_LOCK" />
<!-- Required to request the manage overlay permission -->
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
请注意替换 FOREGROUND_SERVICE_LOCATION 使用您想要使用的前景服务类型(参见 前景服务类型) (中文(简体) ). 见 服务类型 用于现有类型.
您还需要添加以下接收器和服务 内部 页:1 application 在您的标签 AndroidManifest.xml数字 :
<receiver android:name="io.capawesome.capacitorjs.plugins.foregroundservice.NotificationActionBroadcastReceiver" />
<service android:name="io.capawesome.capacitorjs.plugins.foregroundservice.AndroidForegroundService" android:foregroundServiceType="location" />
请注意替换 location 使用您想要使用的前景服务类型(参见 前景服务类型) (中文(简体) ). 见 服务类型 用于现有类型.
配置
此插件不需要配置 .
演示
这里有一个实例: robingenz/电容器-插管-demo
| 机器人 |
|---|
![]() |
使用量
import { Capacitor } from '@capacitor/core';
import { ForegroundService } from '@capawesome-team/capacitor-android-foreground-service';
const startForegroundService = async () => {
await ForegroundService.startForegroundService({
id: 1,
title: 'Title',
body: 'Body',
smallIcon: 'ic_stat_icon_config_sample',
buttons: [
{
title: 'Button 1',
id: 1,
},
{
title: 'Button 2',
id: 2,
},
],
silent: false,
notificationChannelId: 'default',
});
};
const updateForegroundService = async () => {
await ForegroundService.updateForegroundService({
id: 1,
title: 'Title',
body: 'Body',
smallIcon: 'ic_stat_icon_config_sample',
});
};
const stopForegroundService = async () => {
await ForegroundService.stopForegroundService();
};
const createNotificationChannel = async () => {
await ForegroundService.createNotificationChannel({
id: 'default',
name: 'Default',
description: 'Default channel',
importance: Importance.Default,
});
};
const deleteNotificationChannel = async () => {
await ForegroundService.deleteNotificationChannel({
id: 'default',
});
};
API 密码
moveToForeground()startForegroundService(...)updateForegroundService(...)stopForegroundService()checkPermissions()requestPermissions()checkManageOverlayPermission()requestManageOverlayPermission()createNotificationChannel(...)deleteNotificationChannel(...)addListener('buttonClicked', ...)addListener('notificationTapped', ...)removeAllListeners()- 接口
- 类型异名
- 数字
移动到前景 ()
moveToForeground() => Promise<void>
将应用程序移动到前景.
在Android SDK 23+上,用户必须给予管理覆盖权限.
你可以用这个 requestManageOverlayPermission() 请求方法
权限和 checkManageOverlayPermission() 用于检查是否
获得许可.
只能从Android上找到.
自: 0.3.0 (中文(简体) )
启动前景服务(...)
startForegroundService(options: StartForegroundServiceOptions) => Promise<void>
启动前景服务.
只能从Android上找到.
| 参数 | 类型 |
|---|---|
options | StartForegroundServiceOptions |
自: 0.0.1 资源
更新前景服务(...)
updateForegroundService(options: UpdateForegroundServiceOptions) => Promise<void>
更新运行前景服务的通知细节.
只能从Android上找到.
| 参数 | 类型 |
|---|---|
options | StartForegroundServiceOptions |
自: 6.1.0 (中文(简体) )
站点前端服务( C)
stopForegroundService() => Promise<void>
停止前卫服务.
只能从Android上找到.
自: 0.0.1 资源
检查( )
checkPermissions() => Promise<PermissionStatus>
检查显示通知的权限 .
打开 机器人,这种方法只需要调用Android 13+.
只能从Android上找到.
回返情况: Promise<PermissionStatus>
自: 5.0.0 (单位:千美元)
请求( )
requestPermissions() => Promise<PermissionStatus>
请求显示通知的权限 .
打开 机器人,这种方法只需要调用Android 13+.
只能从Android上找到.
回返情况: Promise<PermissionStatus>
自: 5.0.0 (单位:千美元)
检查管理重叠
checkManageOverlayPermission() => Promise<ManageOverlayPermissionResult>
请检查date=中的日期值 (帮助) .
只能从Android上找到.
回返情况: Promise<ManageOverlayPermissionResult>
自: 0.3.0 (中文(简体) )
管理重叠
requestManageOverlayPermission() => Promise<ManageOverlayPermissionResult>
请求管理覆盖权限 .
只能从Android上找到.
回返情况: Promise<ManageOverlayPermissionResult>
自: 0.3.0 (中文(简体) )
创建通知频道(...)
createNotificationChannel(options: CreateNotificationChannelOptions) => Promise<void>
创建通知通道 . 如果不引用,插件会创建一个频道,其名称和描述设置为"Default".
仅供Android(SDK 26+)使用.
| 参数 | 类型 |
|---|---|
options | CreateNotificationChannelOptions |
自: 6.1.0 (中文(简体) )
删除通知频道(...)
deleteNotificationChannel(options: DeleteNotificationChannelOptions) => Promise<void>
删除通知频道.
仅供Android(SDK 26+)使用.
| 参数 | 类型 |
|---|---|
options | DeleteNotificationChannelOptions |
自: 6.1.0 (中文(简体) )
添加 Listener ('按钮点击',...)
addListener(eventName: 'buttonClicked', listenerFunc: ButtonClickedEventListener) => Promise<PluginListenerHandle>
点击通知按钮时调用 .
仅在iOS上可用.
| 参数 | 类型 |
|---|---|
eventName | 'buttonClicked' |
listenerFunc | ButtonClickedEventListener |
回返情况: Promise<PluginListenerHandle>
自: 0.2.0 (中文(简体) )
添加倾听器( 已通知, ...)
addListener(eventName: 'notificationTapped', listenerFunc: NotificationTappedEventListener) => Promise<PluginListenerHandle>
监听前台服务通知时调用.
只能从Android上找到.
| 参数 | 类型 |
|---|---|
eventName | 'notificationTapped' |
listenerFunc | NotificationTappedEventListener |
回返情况: Promise<PluginListenerHandle>
自: 8.1.0 联合国
删除所有收听器( )
removeAllListeners() => Promise<void>
删除此插件的所有听众 .
自: 0.2.0 (中文(简体) )
接口
启动前景服务选项
| Prop | 类型 | 说明 | 默认 | 自兹 |
|---|---|---|---|---|
body | string | 通知书正文如下:. | 0.0.1 资源 | |
buttons | NotificationButton[] | 通知上要显示的按钮 。 仅在Android上可用(SDK 24+). | 0.2.0 (中文(简体) ) | |
id | number | 通知识别符. | 0.0.1 资源 | |
serviceType | ServiceType | 前景服务类型. 仅在Android(SDK 29+)上可用. | 6.2.0 (单位:千美元) | |
smallIcon | string | 通知的状态栏图标 。 图标应该放置在您的应用程序中 res/drawable 文件夹。 此选项的值应该是可绘制的资源ID, 即没有扩展名的文件名 . | 0.0.1 资源 | |
title | string | 通知的标题. | 0.0.1 资源 | |
silent | boolean | 如果是真的,则只在第一次通知时发出警报(声音/振动)。 之后的更新将会被沉默. | false | 6.1.0 (中文(简体) ) |
notificationChannelId | string | 通知频道标识符. | 6.1.0 (中文(简体) ) |
通知按钮
| Prop | 类型 | 说明 | 自兹 |
|---|---|---|---|
title | string | 按钮标题. | 0.2.0 (中文(简体) ) |
id | number | 按钮标识符 。 用于在 buttonClicked 事件已释放. | 0.2.0 (中文(简体) ) |
权限状态
| Prop | 类型 | 说明 | 自兹 |
|---|---|---|---|
display | PermissionState | 显示通知的权限状态 . | 5.0.0 (单位:千美元) |
管理重叠任务结果
| Prop | 类型 | 说明 | 自兹 |
|---|---|---|---|
granted | boolean | 是否获得许可 。 总是这样 true android SDK < 23 (英语). | 0.3.0 (中文(简体) ) |
创建通知
| Prop | 类型 | 说明 | 自兹 |
|---|---|---|---|
description | string | 本频道的描述(向用户介绍). | 6.1.0 (中文(简体) ) |
id | string | 频道标识符. | 6.1.0 (中文(简体) ) |
importance | Importance | 发送到此频道的通知的中断级别 . | 6.1.0 (中文(简体) ) |
name | string | 此频道的名称( 向用户介绍) . | 6.1.0 (中文(简体) ) |
删除通知
| Prop | 类型 | 说明 | 自兹 |
|---|---|---|---|
id | string | 频道标识符. | 6.1.0 (中文(简体) ) |
插件听筒
| Prop | 类型 |
|---|---|
remove | () => Promise<void> |
按钮点击事件
| Prop | 类型 | 说明 | 自兹 |
|---|---|---|---|
buttonId | number | 按钮标识符 . | 0.2.0 (中文(简体) ) |
通知 纹身事件
| Prop | 类型 | 说明 | 自兹 |
|---|---|---|---|
notificationId | number | 通知识别符. | 8.1.0 联合国 |
类型异名
更新前景服务选项
权限状态
'prompt' | 'prompt-with-rationale' | 'granted' | 'denied'
按钮点击事件收听器
(event: ButtonClickedEvent): void
通知窗口
(event: NotificationTappedEvent): void
数字
服务类型
| 成员 | 数值 | 说明 | 自兹 |
|---|---|---|---|
Location | 8 | 长跑使用需要位置访问的病例,如导航和位置共享. | 6.2.0 (单位:千美元) |
Microphone | 128 | 从背景继续麦克风抓取,如语音录音机或通信app. | 6.2.0 (单位:千美元) |
重要性
| 成员 | 数值 | 自兹 |
|---|---|---|
Min | 1 | 6.1.0 (中文(简体) ) |
Low | 2 | 6.1.0 (中文(简体) ) |
Default | 3 | 6.1.0 (中文(简体) ) |
High | 4 | 6.1.0 (中文(简体) ) |
Max | 5 | 6.1.0 (中文(简体) ) |
财务问题
为什么用户可以驳回通知?
Android 14 改变了行为,允许用户驳回此类通知,参见 用户如何经历不可解除通知的变化。 。 。 .
更改日志
见 变动情况。 。 。 .
许可证
见 自由主义。 。 。 .
