ntfy flutter如何集成到Flutter应用中

如何在Flutter应用中集成ntfy推送服务?有没有详细的步骤说明或示例代码?我尝试按照官方文档操作但遇到依赖冲突问题,不知道该如何解决。另外想请教ntfy在Flutter中的最佳实践,比如如何管理订阅主题和处理推送消息?

2 回复

在Flutter应用中集成ntfy,步骤如下:

  1. 添加依赖:在pubspec.yaml中添加ntfy: ^1.0.0(版本号请查看最新)。
  2. 导入包:在代码中import 'package:ntfy/ntfy.dart';
  3. 初始化:使用Ntfy.subscribe('主题名')订阅主题。
  4. 监听消息:通过Ntfy.messages流接收推送消息。

示例代码:

Ntfy.subscribe('your-topic');
Ntfy.messages.listen((msg) {
  print('收到消息: ${msg.message}');
});

确保应用有网络权限。

更多关于ntfy flutter如何集成到Flutter应用中的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


要在 Flutter 应用中集成 ntfy,可以通过官方提供的 ntfy 包实现。以下是详细步骤:

1. 添加依赖

pubspec.yaml 文件中添加依赖:

dependencies:
  ntfy: ^2.0.0

运行 flutter pub get 安装包。

2. 基本用法

订阅主题并接收消息

import 'package:ntfy/ntfy.dart';

final client = NtfyClient(
  baseUrl: 'https://ntfy.sh', // 或自定义服务器地址
);

// 订阅主题
final subscription = await client.subscribe(
  topic: 'your-topic',
  onMessage: (message) {
    print('收到消息: ${message.message}');
  },
  onError: (error) {
    print('错误: $error');
  },
);

// 取消订阅
subscription.cancel();

发送消息

await client.publish(
  topic: 'your-topic',
  message: 'Hello from Flutter!',
  title: '通知标题',
  tags: ['warning', 'red'],
  priority: MessagePriority.high,
);

3. 配置权限(Android)

android/app/src/main/AndroidManifest.xml 中添加网络权限:

<uses-permission android:name="android.permission.INTERNET" />

4. 高级功能

  • 认证支持:通过 usernamepassword 参数添加基础认证。
  • WebSocket 连接:默认使用长轮询,可配置为 WebSocket。
  • 消息操作:支持点击动作、图片附件等(需服务器支持)。

注意事项

  • 确保主题名称符合规则(仅允许字母、数字、短横线)。
  • 处理连接断开和重连逻辑以提升稳定性。
  • 测试时建议使用自建服务器或 ntfy.sh 的公共实例。

通过以上步骤即可快速集成 ntfy 到 Flutter 应用,实现消息的订阅和推送功能。

回到顶部