有没有大佬有更好的接收厂商通道消息的方法
没事干了,集成一下极光推送,Demo在总结上面
目录
集成华为厂商通道
厂商通道接收消息
总结
环境
pubspec.yaml中引入
dependencies:
flutter:
sdk: flutter
//--------------------在这个下面添加-------------
#极光推送
jpush_flutter: ^2.2.3
android\app\build.gradle中添加
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.dyys.jpush_demo"
minSdkVersion 21
targetSdkVersion 30
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
//===============添加====================
ndk {
//选择要添加的对应 cpu 类型的 .so 库。
abiFilters 'armeabi', 'armeabi-v7a', 'x86', 'x86_64', 'mips', 'mips64', 'arm64-v8a'
}
manifestPlaceholders = [
JPUSH_PKGNAME : applicationId,
JPUSH_APPKEY : "0740381176916492db0971fc", // NOTE: JPush 上注册的包名对应的 Appkey.
JPUSH_CHANNEL : "developer-default", //暂时填写默认值即可.
]
//========================================
}
复制官方实例代码,然后运行
https://pub.flutter-io.cn/packages/jpush_flutter/example
参考了
在Flutter中使用极光推送集成华为通道踩坑 - aquilahkj - 博客园
flutter 极光推送华为厂商通道推送_After life的博客-CSDN博客_flutter 厂商推送
android\build.gradle中添加
buildscript {
ext.kotlin_version = '1.3.50'
repositories {
google()
mavenCentral()
//===========添加=================
maven { url 'https://developer.huawei.com/repo/' }
}
dependencies {
classpath 'com.android.tools.build:gradle:4.1.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
//===========添加=================
classpath 'com.huawei.agconnect:agcp:1.5.2.300'
}
}
allprojects {
repositories {
google()
mavenCentral()
//===========添加=================
maven {url 'https://developer.huawei.com/repo/'}
}
}
android\app\build.gradle 添加
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
//=====================添加============================
// // 接入华为厂商
implementation 'com.huawei.hms:push:5.3.0.301'
implementation 'cn.jiguang.sdk.plugin:huawei:4.6.0'// 极光厂商插件版本与接入 JPush 版本保持一致,下同
}
cn.jiguang.sdk.plugin:huawei:4.6.0的版本和
的版本一样
根据极光文档极光文档
配置华为账号
[HWPushHelper] token:xxxxxxxxxxxxxx
参考大佬Android极光推送厂商离线通道集成文档及flutter集成总结_闫文敬的博客-CSDN博客_极光推送离线推送
监听不到,暂时本地再推送一遍
修改MainActivity.kt
package com.example.jpush_demo
import android.content.Intent
import android.os.Bundle
import android.text.TextUtils
import cn.jpush.android.api.JPushInterface
import cn.jpush.android.data.JPushLocalNotification
import io.flutter.embedding.android.FlutterActivity
import org.json.JSONException
import org.json.JSONObject
import java.util.*
class MainActivity: FlutterActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
handleOpenClick()
}
private val TAG = "| JPUSH | Flutter | Android | ChangShang |"
/**
* 消息Id
*/
private val KEY_MSGID = "msg_id"
/**
* 该通知的下发通道
*/
private val KEY_WHICH_PUSH_SDK = "rom_type"
/**
* 通知标题
*/
private val KEY_TITLE = "n_title"
/**
* 通知内容
*/
private val KEY_CONTENT = "n_content"
/**
* 通知附加字段
*/
private val KEY_EXTRAS = "n_extras"
/**
* 处理点击事件,当前启动配置的Activity都是使用
* Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK
* 方式启动,只需要在onCreat中调用此方法进行处理
*/
private fun handleOpenClick() {
var data: String? = null
//获取华为平台附带的jpush信息
if (getIntent().getData() != null) {
data = getIntent().getData().toString()
}
//获取fcm、oppo、vivo、华硕、小米平台附带的jpush信息
if (TextUtils.isEmpty(data) && getIntent().getExtras() != null) {
data = getIntent().getExtras()?.getString("JMessageExtra")
}
if (TextUtils.isEmpty(data)) return
try {
val jsonObject = JSONObject(data)
val msgId: Long = jsonObject.optLong(KEY_MSGID)
val title: String = jsonObject.optString(KEY_TITLE)
val message: String = jsonObject.optString(KEY_CONTENT)
val extras: String = jsonObject.optString(KEY_EXTRAS)
val ln = JPushLocalNotification()
ln.title = title
ln.builderId =1
ln.content = message
ln.extras = extras
ln.broadcastTime = Date().time
ln.notificationId = msgId
JPushInterface.addLocalNotification(this,ln)
} catch (e: JSONException) {
System.out.println("======JPUSH厂商通道错误====")
System.out.println(e)
System.out.println("==========================")
}
}
}
附笔记:
文档:Flutter集成极光推送.note
链接:
http://note.youdao.com/noteshare?id=3ae4f9de39a8c42d6f532ef6f261b2c2&sub=E1FFB7D43DF84969B2729D9C652011C0
Demo地址
https://pan.baidu.com/s/1k0RHReTfJfYdrDP-6oBxDA
提取码:1234
记录一下集成要点