友盟push的flutter插件
Flutter 友盟推送
正在开发中。目前安卓平台基本完成。
在 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)
def flutterProjectRoot = rootProject.projectDir.parentFile.toPath()
…
4. 修改 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'
}
…
}
5. 修改 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