fix(genex-mobile): 修复 WXEntryActivity fluwx 5.x 编译错误

fluwx 5.x 将包名从 com.jarvanmo.fluwx 改为 com.jarvan.fluwx,
并移除了 WXEntryActivity 基类,导致编译报错:
  Unresolved reference 'jarvanmo'
  Cycle in supertypes detected

改为「中继(relay)」模式:
- WXEntryActivity 继承 Activity(不再继承 fluwx 基类)
- onCreate 时将微信回调 Intent extras 转发给 MainActivity
- fluwx 5.x 的 FluwxPlugin 实现了 PluginRegistry.NewIntentListener,
  MainActivity.onNewIntent() 会触发 FluwxPlugin 解析微信回调

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
hailin 2026-03-04 18:03:16 -08:00
parent 828770add8
commit 5d72d9bd0b
1 changed files with 35 additions and 7 deletions

View File

@ -16,11 +16,18 @@
// 微信按 applicationId 查找 WXEntryActivity因此此文件放在 // 微信按 applicationId 查找 WXEntryActivity因此此文件放在
// cn/gogenex/consumer/wxapi/ 目录package 声明也必须是 cn.gogenex.consumer.wxapi // cn/gogenex/consumer/wxapi/ 目录package 声明也必须是 cn.gogenex.consumer.wxapi
// //
// ── fluwx 集成方式 ──────────────────────────────────────── // ── fluwx 5.x 集成方式Relay 模式)─────────────────────
// fluwx 插件已提供 com.jarvanmo.fluwx.WXEntryActivity 基类, // fluwx 5.x 不再提供 WXEntryActivity 基类(旧包名 com.jarvanmo.fluwx
// 内部实现了 IWXAPIEventHandler 接口并通过 EventChannel 将结果 // 已改为 com.jarvan.fluwx且基类已移除
// 传递给 Dart 层的 weChatResponseEventHandler Stream。 //
// 只需继承该基类,无需任何额外代码。 // fluwx 5.x 的 FluwxPlugin 实现了 PluginRegistry.NewIntentListener
// 通过 MainActivity.onNewIntent() 监听并处理微信回调 Intent。
//
// 因此此 Activity 采用「中继relay」模式
// 1. 微信唤起 WXEntryActivity传入携带授权结果的 Intent
// 2. WXEntryActivity 将 Intent extras 转发给 MainActivity
// 3. Flutter Engine 的 onNewIntent 触发 FluwxPlugin.onNewIntent()
// 4. FluwxPlugin 调用 WXAPiHandler 解析回调并通知 Dart 层
// //
// ── AndroidManifest 配置要求 ────────────────────────────── // ── AndroidManifest 配置要求 ──────────────────────────────
// android:exported="true" — 允许微信 App 从外部唤起 // android:exported="true" — 允许微信 App 从外部唤起
@ -43,6 +50,27 @@
package cn.gogenex.consumer.wxapi package cn.gogenex.consumer.wxapi
import com.jarvanmo.fluwx.WXEntryActivity import android.app.Activity
import android.content.Intent
import android.os.Bundle
import cn.gogenex.genex_consumer.MainActivity
class WXEntryActivity : WXEntryActivity() /**
* 微信回调中继 Activity
*
* 微信 SDK 将授权结果 Intent 发到此 Activity
* 此处立即转发给 MainActivity fluwx 5.x
* FluwxPluginNewIntentListener处理
*/
class WXEntryActivity : Activity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// 将微信回调 Intent 转发给 MainActivity
val intent = Intent(this, MainActivity::class.java).apply {
addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP or Intent.FLAG_ACTIVITY_CLEAR_TOP)
this@WXEntryActivity.intent.extras?.let { putExtras(it) }
}
startActivity(intent)
finish()
}
}