顾海波

【修复】app关闭后收到消息启动

... ... @@ -32,8 +32,10 @@ class EwinMixPushReceiver : MixPushReceiver() {
}
override fun onNotificationMessageClicked(context: Context, message: MixPushMessage) {
if(!::FlutterPushPlugin.channel.isInitialized){
if(!FlutterPushPlugin.isInit()){
FlutterPushPlugin.lastMsg = message
context.startActivity(context.packageManager.getLaunchIntentForPackage(context.packageName))
return
}
this.invokeListener(MixListenerTypeEnum.NotificationMessageClicked, message)
... ...
... ... @@ -17,7 +17,7 @@ import com.ewin.flutter_push.EwinMixPushReceiver
import com.ewin.flutter_push.enums.MixListenerTypeEnum
import com.ewin.flutter_push.utils.CommonUtil
import com.alibaba.fastjson.JSON
import com.mixpush.core.MixPushMessage
/** FlutterPushPlugin */
class FlutterPushPlugin: FlutterPlugin, MethodCallHandler {
/// The MethodChannel that will the communication between Flutter and native Android
... ... @@ -26,6 +26,10 @@ class FlutterPushPlugin: FlutterPlugin, MethodCallHandler {
/// when the Flutter Engine is detached from the Activity
companion object {
lateinit var channel: MethodChannel
var lastMsg :MixPushMessage ? = null
fun isInit():Boolean{
return ::channel.isInitialized
}
}
private lateinit var context: Context
... ... @@ -43,6 +47,18 @@ class FlutterPushPlugin: FlutterPlugin, MethodCallHandler {
MixPushClient.getInstance().setPushReceiver(EwinMixPushReceiver())
MixPushClient.getInstance().register(this.context,defaultPlatform?:HUAWEI)
result.success(true)
CommonUtil.runMainThread {
if(lastMsg!=null){
val p: String = if (lastMsg != null) JSON.toJSONString(lastMsg) else ""
channel.invokeMethod("onListener", mapOf(
"type" to MixListenerTypeEnum.NotificationMessageClicked.name,
"params" to p
))
lastMsg = null
}
}
} else if (call.method == "getRegId") {
MixPushClient.getInstance().getRegisterId(this.context, object : GetRegisterIdCallback() {
override fun callback(platform: MixPushPlatform?) {
... ...