提交 60a79cc6 authored 作者: Charley's avatar Charley

修复冷启动问题

上级 ca58ed2b
......@@ -61,7 +61,7 @@ object FluwxRequestHandler {
// 稳定复现场景:微信版本为7.0.5,小程序SDK为2.7.7
if (baseReq.type == 4) {
// com.tencent.mm.opensdk.constants.ConstantsAPI.COMMAND_SHOWMESSAGE_FROM_WX = 4
if (WXAPiHandler.wxApiRegistered) {
if (!WXAPiHandler.isCoolBoot) {
handleRequest(baseReq)
startSpecifiedActivity(defaultFlutterActivityAction(activity), activity = activity)
} else {
......@@ -102,5 +102,5 @@ object FluwxRequestHandler {
}
}
private fun defaultFlutterActivityAction(context: Context): String = "$context.packageName.FlutterActivity"
private fun defaultFlutterActivityAction(context: Context): String = "${context.packageName}.FlutterActivity"
}
\ No newline at end of file
......@@ -34,6 +34,14 @@ object WXAPiHandler {
val wxApiRegistered get() = registered
//是否为冷启动
private var coolBoot: Boolean = false
val isCoolBoot get() = coolBoot
fun setCoolBool(isCoolBoot : Boolean) {
coolBoot = isCoolBoot
}
fun setupWxApi(appId: String, context: Context, force: Boolean = true): Boolean {
if (force || !registered) {
setContext(context)
......
......@@ -17,6 +17,7 @@ package com.jarvan.fluwx.wxapi
import android.app.Activity
import android.content.Intent
import android.content.pm.PackageManager
import android.os.Bundle
import com.jarvan.fluwx.handlers.FluwxResponseHandler
import com.jarvan.fluwx.handlers.FluwxRequestHandler
......@@ -24,6 +25,7 @@ import com.jarvan.fluwx.handlers.WXAPiHandler
import com.tencent.mm.opensdk.modelbase.BaseReq
import com.tencent.mm.opensdk.modelbase.BaseResp
import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler
import io.flutter.Log
open class FluwxWXEntryActivity : Activity(), IWXAPIEventHandler {
......@@ -34,6 +36,17 @@ open class FluwxWXEntryActivity : Activity(), IWXAPIEventHandler {
super.onCreate(savedInstanceState)
try {
if (!WXAPiHandler.wxApiRegistered) {
var appInfo = packageManager.getApplicationInfo(packageName, PackageManager.GET_META_DATA)
val wechatAppId = appInfo.metaData.getString("weChatAppId")
if (wechatAppId != null ){
WXAPiHandler.setupWxApi(wechatAppId,this)
WXAPiHandler.setCoolBool(true)
Log.d("fluwx","weChatAppId:" + wechatAppId)
}else {
Log.e("fluwx","can't load meta-data weChatAppId")
}
}
WXAPiHandler.wxApi?.handleIntent(intent, this)
} catch (e: Exception) {
e.printStackTrace()
......
......@@ -10,6 +10,10 @@
android:name="io.flutter.app.FlutterApplication"
android:icon="@mipmap/ic_launcher"
android:label="fluwx_example">
<meta-data
android:name="weChatAppId"
android:value="12345678" />
<meta-data
android:name="handleWeChatRequestByFluwx"
......
name: fluwx
description: The capability of implementing WeChat SDKs in Flutter. With Fluwx, developers can use WeChatSDK easily, such as sharing, payment, lanuch mini program and etc.
version: 2.6.2
version: 2.6.3
homepage: https://github.com/JarvanMo/fluwx
environment:
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论