极光推送集成指南与iOS开发工具推荐
极光推送基础集成
- 在pubspec.yaml中引入库:
jpush_flutter: ^2.4.2
- 创建极光推送工具类
dart
class JPushUtil{
static initJPush(){
JPush().addEventHandler(
onReceiveNotification: (Map message) async{
//推送通知栏新消息
print('new message:$message');
},
onOpenNotification: (Map message) async{
//点击通知
print('onOpenNotification:$message');
setBadge(0);
},
onNotifyMessageUnShow: (Map message) async{
//不显示消息时回调
setBadge(0);
},
);
JPush().applyPushAuthority(
NotificationSettingsIOS(sound: true,alert: true,badge: true)
);
JPush().setup(
appKey: 'jpush appkey',
channel: 'developer-default',
production: false,
debug: true
);
}
//设置tags
static setTags(List<String> tags){
JPush().setTags(tags);
}
//设置别名
static setAlias(String alias){
JPush().setAlias(alias);
}
//删除别名
static deleteAlias(){
JPush().deleteAlias();
}
//清空tags
static cleanTags(){
JPush().cleanTags();
}
//设置角标
static setBadge(int badge){
JPush().setBadge(badge);
}
}
- 配置app下的build.gradle 在build.gradle的android>defaultConfig中增加配置
manifestPlaceholders
groovy
android {
compileSdkVersion 33
lintOptions {
checkReleaseBuilds false
abortOnError false
}
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
}
lintOptions {
disable 'InvalidPackage'
}
defaultConfig {
applicationId ""
minSdkVersion 20
targetSdkVersion 31
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
multiDexEnabled true
ndk{
abiFilters 'armeabi-v7a','arm64-v8a'
}
manifestPlaceholders = [
TENCENT_APP_ID: "",
JPUSH_PKGNAME : "在极光推送配置的包名",
JPUSH_APPKEY : "", // NOTE: JPush 上注册的包名对应的 Appkey.
JPUSH_CHANNEL : "developer-default", //暂时填写默认值即可.
XIAOMI_APPID : "MI-appid",
XIAOMI_APPKEY : "MI-appkey",
OPPO_APPID : "OP-appid",
OPPO_APPKEY : "OP-appkey",
OPPO_APPSECRET : "OP-appsecert",
VIVO_APPID : "",
VIVO_APPKEY : "",
]
}
signingConfigs {
release {
storeFile file("ati.jks")
storePassword ""
keyAlias "ati"
keyPassword ""
}
debug {
storeFile file("ati.jks")
storePassword ""
keyAlias "ati"
keyPassword ""
}
}
buildTypes {
release {
signingConfig signingConfigs.release
minifyEnabled true
shrinkResources true
ndk {
abiFilters "armeabi-v7a"
abiFilters "armeabi"
abiFilters "arm64-v8a"
}
}
debug {
signingConfig signingConfigs.debug
}
}
}
- 使用:在需要初始化推送的页面调用
JPushUtil.initJPush();
Google Play版极光推送特殊处理
- 找到极光SDK下载位置,选择Google Play版本下载
- 下载的SDK版本需要与flutter中引入的库中的SDK版本一致
- 将下载的SDK解压,复制libs中的jar包到jpush_flutter-2.4.2的android/libs文件夹下
- 修改jpush_flutter-2.4.2的android/build.gradle文件配置
groovy
dependencies {
implementation 'cn.jiguang.sdk:jpush:4.9.0'
compile files('libs/jcore-android-4.1.0-google_play.jar')
}
- 对于极光推送5.0以上版本的特殊处理
groovy
implementation('cn.jiguang.sdk:jpush:5.4.0') {
exclude module: 'jcore'
}
compile files('libs/jcore-android-4.7.0-google_play.jar')
iOS开发辅助工具推荐
在iOS应用开发过程中,除了推送功能集成外,应用打包和上架也是重要环节。appuploader作为一款专业的iOS开发助手工具,可以帮助开发者:
- 简化证书和描述文件管理流程
- 提供一键打包功能
- 支持快速上传到App Store Connect
- 提供应用状态监控
与极光推送的集成类似,使用appuploader也能显著提升开发效率。特别是在需要频繁测试推送功能的场景下,快速打包和安装测试版本可以大大缩短开发周期。
建议开发者在完成极光推送集成后,使用appuploader进行打包测试,验证推送功能在iOS设备上的实际表现。这样可以确保从开发到上线的全流程顺畅。