Flutter教程Android极光推送配置
在Flutter项目中配置Android端的极光推送时遇到问题,按照官方文档集成后收不到推送通知。具体步骤:已添加jpush_flutter插件,配置了AndroidManifest.xml文件并申请了AppKey,但在测试时设备始终无法注册成功。Logcat显示"JPush Plugin is not configured",但检查配置似乎没有问题。
想请教:
- Android端还需要哪些额外配置?
- 是否需要特别处理Firebase依赖冲突?
- 在Flutter 3.x版本中是否有已知兼容性问题?
- 正确的初始化代码应该放在main.dart的哪个位置?
首先在极光官网注册账号并创建应用,获取AppKey。在Flutter项目中添加jpush_flutter
插件。
-
在
android/app/build.gradle
里添加implementation 'cn.jiguang.sdk:jpush:4.2.0'
和implementation 'cn.jiguang.sdk:jcore:2.8.0'
依赖。 -
修改
MainActivity.java
,初始化极光推送:
import cn.jpush.android.api.JPushInterface;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
JPushInterface.setDebugMode(true);
JPushInterface.init(this);
}
- 在
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>
- 创建自定义
JPushReceiver
接收消息:
public class JPushReceiver extends com.huawei.hms.push.HmsMessageService {
@Override
public void onMessageReceived(Intent intent) {
// 处理推送消息
}
}
- 最后别忘了替换为自己的AppKey。
更多关于Flutter教程Android极光推送配置的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
-
添加依赖:在pubspec.yaml中添加极光推送插件
flutter_jpush
。 -
Android配置:
- 导入极光推送SDK到
android/app/src/main/jniLibs
目录。 - 在
android/app/build.gradle
中添加权限和依赖。
- 导入极光推送SDK到
-
初始化:在Application类的
onCreate
方法中初始化JPush。 -
配置消息接收:实现
JPushMessageReceiver
接口处理推送消息。 -
测试:运行项目并发送测试推送消息检查接收情况。
示例代码:
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. 准备工作
首先确保你已经:
- 在极光官网注册账号
- 创建了应用并获取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. 测试推送
- 运行应用
- 登录极光控制台发送测试推送
- 检查应用是否能收到推送
如需更多配置如厂商通道集成、自定义通知样式等,请参考极光官方文档。