项目作者: dongweiq

项目描述 :
友盟push的flutter插件
高级语言: Java
项目地址: git://github.com/dongweiq/flutter_umpush.git
创建时间: 2019-09-26T12:10:32Z
项目社区:https://github.com/dongweiq/flutter_umpush

开源协议:Other

下载


flutter_umpush

Flutter 友盟推送
正在开发中。目前安卓平台基本完成。

ROADMAP

  • ios
  • android
  • 集成notification
  • 集成message
  • 集成alias
  • 集成tags
  • 可以运行的例子
  • 用户可相互自行推送

集成过程

准备工作

在 pubspec.yaml 中加入 flutter-umpush

申请key

进入这里创建或添加已有应用。然后可以在应用信息中看到 Appkey、Umeng Message Secret
同时在应用信息中可以设置包名为你的app包名。
详细信息参考开发文档(https://developer.umeng.com/?refer=UPush)

ios 证书申请

同安卓一样进入(http://message.umeng.com/list/apps)新建应用。
详情参考iOS开发文档(https://developer.umeng.com/docs/66632/detail/66734)

ios 集成

Android 集成

  1. 将下载回来SDK中(或本项目example)的 push 文件夹复制到你项目的 android 目录中。
  2. 在 push 的 libs 中将缺少的so、jar补全,参考下图

image

  1. 修改 android\settings.gradle 文件,加入include ‘:push’
    ```
    include ‘:app’,’:push’

def flutterProjectRoot = rootProject.projectDir.parentFile.toPath()

  1. 4. 修改 android\app\build.gradle ,在 android 区域中添加 manifestPlaceholders ndk

android {

  1. // 添加的内容
  2. manifestPlaceholders = [
  3. UMPUSH_PKGNAME : applicationId,
  4. UMPUSH_APPKEY : "5b8c9800f29d9836ac000017", //Push上注册的包名对应的appkey.
  5. UMPUSH_CHANNEL : "umpush",
  6. UMENG_MESSAGE_SECRET : "b11af04a78ddc9c6ca246a7dc8c275d7",
  7. ]
  8. ndk {
  9. //选择要添加的对应cpu类型的.so库。
  10. abiFilters 'x86', 'x86_64', 'armeabi-v7a'
  11. // abiFilters 'armeabi-v7a'
  12. // 还可以添加 'x86', 'x86_64', 'mips', 'mips64', 'armeabi', 'armeabi-v7a', 'arm64-v8a'
  13. }


}

  1. 5. 修改 AndroidManifest.xml

将 application 中的

android:name=”io.flutter.app.FlutterApplication”

修改为

android:name=”com.yangyxd.flutterumpush.MainApplication”

  1. ## 使用插件
  2. initState() 中初始化和添加监听
  1. await FlutterUmPush.startup();
  2. FlutterUmPush.addConnectionChangeListener((bool connected) {
  3. setState(() {
  4. /// 是否连接,连接了才可以推送
  5. print("连接状态改变:$connected");
  6. this.isConnected = connected;
  7. if (connected) {
  8. FlutterUmPush.getRegistrationID().then((String regId) {
  9. print("主动获取设备号:$regId");
  10. setState(() {});
  11. });
  12. }
  13. });
  14. });
  15. FlutterUmPush.addnetworkDidLoginListener((String registrationId) {
  16. setState(() {
  17. /// 用于推送
  18. print("收到设备号:$registrationId");
  19. });
  20. });
  21. FlutterUmPush
  22. .addReceiveNotificationListener((PushMessage notification) {
  23. setState(() {
  24. /// 收到推送
  25. print("收到推送提醒: $notification");
  26. });
  27. });
  28. FlutterUmPush
  29. .addReceiveOpenNotificationListener((PushMessage notification) {
  30. setState(() {
  31. print("打开了推送提醒: $notification");
  32. });
  33. });
  34. FlutterUmPush.addReceiveCustomMsgListener((PushMessage msg) {
  35. setState(() {
  36. print("收到推送消息提醒: $msg");
  37. });
  38. });

```

License MIT

感谢

本项目直接拿了雪亮的极光推送框架来改的,省了不少时间,在此表示感谢。
极光推送:https://github.com/best-flutter/flutter_jpush

欢迎提交issue或者加入QQ群325337654