Flutter教程Android极光推送配置

在Flutter项目中配置Android端的极光推送时遇到问题,按照官方文档集成后收不到推送通知。具体步骤:已添加jpush_flutter插件,配置了AndroidManifest.xml文件并申请了AppKey,但在测试时设备始终无法注册成功。Logcat显示"JPush Plugin is not configured",但检查配置似乎没有问题。

想请教:

  1. Android端还需要哪些额外配置?
  2. 是否需要特别处理Firebase依赖冲突?
  3. 在Flutter 3.x版本中是否有已知兼容性问题?
  4. 正确的初始化代码应该放在main.dart的哪个位置?
3 回复

首先在极光官网注册账号并创建应用,获取AppKey。在Flutter项目中添加jpush_flutter插件。

  1. android/app/build.gradle里添加implementation 'cn.jiguang.sdk:jpush:4.2.0'implementation 'cn.jiguang.sdk:jcore:2.8.0'依赖。

  2. 修改MainActivity.java,初始化极光推送:

import cn.jpush.android.api.JPushInterface;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    JPushInterface.setDebugMode(true);
    JPushInterface.init(this);
}
  1. AndroidManifest.xml中添加权限和服务:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<service
    android:name=".JPushReceiver"
    android:exported="false">
    <intent-filter>
        <action android:name="cn.jpush.android.intent.RECEIVE_MESSAGE" />
    </intent-filter>
</service>
  1. 创建自定义JPushReceiver接收消息:
public class JPushReceiver extends com.huawei.hms.push.HmsMessageService {
    @Override
    public void onMessageReceived(Intent intent) {
        // 处理推送消息
    }
}
  1. 最后别忘了替换为自己的AppKey。

更多关于Flutter教程Android极光推送配置的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


  1. 添加依赖:在pubspec.yaml中添加极光推送插件flutter_jpush

  2. Android配置:

    • 导入极光推送SDK到android/app/src/main/jniLibs目录。
    • android/app/build.gradle中添加权限和依赖。
  3. 初始化:在Application类的onCreate方法中初始化JPush。

  4. 配置消息接收:实现JPushMessageReceiver接口处理推送消息。

  5. 测试:运行项目并发送测试推送消息检查接收情况。

示例代码:

import cn.jpush.android.api.JPushInterface;

public class MyApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        JPushInterface.setDebugMode(true);
        JPushInterface.init(this);
    }
}

记得在AndroidManifest.xml中声明MyApplication类。

Flutter Android极光推送配置指南

1. 准备工作

首先确保你已经:

  1. 极光官网注册账号
  2. 创建了应用并获取AppKey

2. 添加依赖

pubspec.yaml中添加极光推送插件:

dependencies:
  jpush_flutter: ^2.0.0  # 或最新版本

然后运行flutter pub get

3. Android配置

3.1 修改AndroidManifest.xml

android/app/src/main/AndroidManifest.xml中添加:

<manifest>
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />

    <application>
        <meta-data
            android:name="JPUSH_CHANNEL"
            android:value="developer-default" />
        <meta-data
            android:name="JPUSH_APPKEY"
            android:value="你的AppKey" />
    </application>
</manifest>

3.2 配置build.gradle

android/app/build.gradle的android部分添加:

android {
    defaultConfig {
        ndk {
            abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
        }
    }
}

4. 初始化代码

在Flutter应用中初始化极光推送:

import 'package:jpush_flutter/jpush_flutter.dart';

final JPush jpush = JPush();

void initPlatformState() async {
  jpush.setup(
    appKey: "你的AppKey",
    channel: "developer-default",
    production: false, // 是否为生产环境
    debug: true, // 是否打印debug日志
  );

  // 监听推送
  jpush.addEventHandler(
    onReceiveNotification: (Map<String, dynamic> message) async {
      print("接收到通知: $message");
    },
    onOpenNotification: (Map<String, dynamic> message) async {
      print("点击通知: $message");
    },
    onReceiveMessage: (Map<String, dynamic> message) async {
      print("接收到自定义消息: $message");
    },
  );
}

5. 测试推送

  1. 运行应用
  2. 登录极光控制台发送测试推送
  3. 检查应用是否能收到推送

如需更多配置如厂商通道集成、自定义通知样式等,请参考极光官方文档。

回到顶部