Flutter 友盟推送 正在开发中。目前安卓平台基本完成。
- ios
- android
- 集成notification
- 集成message
- 集成alias
- 集成tags
- 可以运行的例子
- 用户可相互自行推送
在 pubspec.yaml 中加入 flutter-umpush
进入这里创建或添加已有应用。然后可以在应用信息中看到 Appkey、Umeng Message Secret 同时在应用信息中可以设置包名为你的app包名。 详细信息参考开发文档(https://developer.umeng.com/?refer=UPush)
同安卓一样进入(http://message.umeng.com/list/apps)新建应用。 详情参考iOS开发文档(https://developer.umeng.com/docs/66632/detail/66734)
- 将下载回来SDK中(或本项目example)的 push 文件夹复制到你项目的 android 目录中。
- 在 push 的 libs 中将缺少的so、jar补全,参考下图
- 修改 android\settings.gradle 文件,加入include ':push'
include ':app',':push'
def flutterProjectRoot = rootProject.projectDir.parentFile.toPath()
...
- 修改 android\app\build.gradle ,在 android 区域中添加 manifestPlaceholders 和 ndk
android {
...
// 添加的内容
manifestPlaceholders = [
UMPUSH_PKGNAME : applicationId,
UMPUSH_APPKEY : "5b8c9800f29d9836ac000017", //Push上注册的包名对应的appkey.
UMPUSH_CHANNEL : "umpush",
UMENG_MESSAGE_SECRET : "b11af04a78ddc9c6ca246a7dc8c275d7",
]
ndk {
//选择要添加的对应cpu类型的.so库。
abiFilters 'x86', 'x86_64', 'armeabi-v7a'
// abiFilters 'armeabi-v7a'
// 还可以添加 'x86', 'x86_64', 'mips', 'mips64', 'armeabi', 'armeabi-v7a', 'arm64-v8a'
}
...
}
- 修改 AndroidManifest.xml
将 application 中的
android:name="io.flutter.app.FlutterApplication"
修改为
android:name="com.yangyxd.flutterumpush.MainApplication"
在 initState() 中初始化和添加监听
await FlutterUmPush.startup();
FlutterUmPush.addConnectionChangeListener((bool connected) {
setState(() {
/// 是否连接,连接了才可以推送
print("连接状态改变:$connected");
this.isConnected = connected;
if (connected) {
FlutterUmPush.getRegistrationID().then((String regId) {
print("主动获取设备号:$regId");
setState(() {});
});
}
});
});
FlutterUmPush.addnetworkDidLoginListener((String registrationId) {
setState(() {
/// 用于推送
print("收到设备号:$registrationId");
});
});
FlutterUmPush
.addReceiveNotificationListener((PushMessage notification) {
setState(() {
/// 收到推送
print("收到推送提醒: $notification");
});
});
FlutterUmPush
.addReceiveOpenNotificationListener((PushMessage notification) {
setState(() {
print("打开了推送提醒: $notification");
});
});
FlutterUmPush.addReceiveCustomMsgListener((PushMessage msg) {
setState(() {
print("收到推送消息提醒: $msg");
});
});
本项目直接拿了雪亮的极光推送框架来改的,省了不少时间,在此表示感谢。 极光推送:https://github.com/best-flutter/flutter_jpush