推送消息不打烊--Flutter集成个推SDK实现Android和IOS原生推送
嗨!这里是甜瓜看代码,大家五一快乐呀,这篇文章跟大家聊聊怎么集成个推。
Flutter集成个推SDK
个推是一款支持多平台的推送服务平台,Flutter提供了多个第三方库来支持个推SDK的集成,其中最为常用的是 flutter_getui 库。
安装
在 pubspec.yaml
文件中添加以下依赖:
dependencies:
flutter_getui: ^4.1.0
然后执行以下命令:
$ flutter pub get
配置
安卓配置
- 在
android/app/build.gradle
文件中添加以下代码:
android {
defaultConfig {
//...
manifestPlaceholders = [
GETUI_APP_ID: "<your_app_id>",
GETUI_APP_KEY: "<your_app_key>",
GETUI_APP_SECRET: "<your_app_secret>"
]
}
}
将 <your_app_id>
, <your_app_key>
, <your_app_secret>
替换为个推官网申请的应用ID、应用Key和应用Secret。
- 在
AndroidManifest.xml
文件中添加以下权限:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
iOS配置
在 Info.plist
文件中添加以下代码:
<key>com.getui.demo.appid</key>
<string><your_app_id></string>
<key>com.getui.demo.appkey</key>
<string><your_app_key></string>
<key>com.getui.demo.appsecret</key>
<string><your_app_secret></string>
将 <your_app_id>
, <your_app_key>
, <your_app_secret>
替换为个推官网申请的应用ID、应用Key和应用Secret。
使用
在Flutter应用中使用个推SDK需要在启动时初始化SDK,并在需要接收推送消息的页面注册推送消息回调函数。
以下是一个简单的示例代码,用于在Flutter应用中发送和接收推送消息:
import 'package:flutter/material.dart';
import 'package:flutter_getui/flutter_getui.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await FlutterGetui.startUp(); // 初始化SDK
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: '个推示例',
home: HomePage(),
);
}
}
class HomePage extends StatefulWidget {
@override
_HomePageState createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
String message = '';
@override
void initState() {
super.initState();
FlutterGetui.addEventHandler(
onReceiveMessage: (Map<String, dynamic> message) async {
setState(() {
this.message = message.toString();
},
//还有很多回调方法,自己可以看
);
}
void sendPushMessage() {
// 构造推送消息
PushMessage message = PushMessage(
title: '测试标题',
content: '测试内容',
payload: '测试负载',
);
// 发送推送消息
FlutterGetui.sendPushMessage(message);
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('个推示例'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
ElevatedButton(
onPressed: sendPushMessage,
child: Text('发送推送消息'),
),
SizedBox(height: 20),
Text(
message,
style: TextStyle(fontSize: 16),
),
],
),
),
);
}
}
在上述代码中,我们首先在 main()
函数中初始化个推SDK,然后在 HomePage
中注册推送消息回调函数,并在 sendPushMessage()
函数中构造并发送推送消息。
当应用接收到推送消息时,onReceiveMessage()
回调函数会被调用,并将推送消息的内容传递给它。在上述代码中,我们将推送消息的内容显示在了应用界面上,以方便调试。
总结
使用 flutter_getui
库集成个推SDK可以很方便地在Flutter应用中实现推送消息的发送和接收。在使用过程中,需要注意在安卓和iOS平台上分别配置相应的参数和权限。
希望本文能对你理解如何集成个推SDK提供一些帮助。这里是甜瓜看代码,期待你的关注!
转载自:https://juejin.cn/post/7227855255109910589