Selaa lähdekoodia

fix(share): 微信回调补回ARouter转发并移除Log.e兜底日志

wangmeng 2 viikkoa sitten
vanhempi
commit
a26d0efc21

BIN
base-core/libs/umeng-share-wechat-full-7.3.7.jar


+ 32 - 0
base-core/src/main/java/com/mooxygen/user/wxapi/WXEntryActivity.kt

@@ -2,7 +2,10 @@ package com.mooxygen.user.wxapi
 
 import android.content.Intent
 import android.os.Bundle
+import com.alibaba.android.arouter.facade.annotation.Autowired
+import com.alibaba.android.arouter.launcher.ARouter
 import com.narutohuo.xindazhou.core.log.ILog
+import com.narutohuo.xindazhou.core.share.IShareCallback
 import com.umeng.socialize.UMShareAPI
 import com.umeng.socialize.weixin.view.WXCallbackActivity
 
@@ -22,16 +25,45 @@ import com.umeng.socialize.weixin.view.WXCallbackActivity
 class WXEntryActivity : WXCallbackActivity() {
     
     private val tag = "WXEntryActivity"
+
+    /**
+     * 通过 ARouter 依赖注入获取分享回调服务
+     *
+     * 注意:capability-share 模块需要实现 IShareCallback 并通过 @Route(path = "/share/callback") 注册
+     */
+    @Autowired(name = "/share/callback")
+    @JvmField
+    var shareCallback: IShareCallback? = null
     
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
+        // ARouter 依赖注入(用于解耦 base-core 与 capability-share)
+        ARouter.getInstance().inject(this)
         ILog.d(tag, "onCreate: 微信回调 Activity 已启动")
+
+        // 将微信回调 Intent 转发给 share 模块处理(用于你提到的“之前有 ARouter 的那套”)
+        try {
+            shareCallback?.onWeChatCallback(intent)
+            ILog.d(tag, "onCreate: 已通过 ARouter 转发 onWeChatCallback")
+        } catch (e: Exception) {
+            ILog.e(tag, "onCreate: 转发 onWeChatCallback 失败", e)
+        }
     }
     
     override fun onNewIntent(intent: Intent?) {
         super.onNewIntent(intent)
         ILog.d(tag, "onNewIntent: 收到新的 Intent")
         setIntent(intent) // 更新 Intent,确保后续能获取到最新数据
+
+        // 新 Intent 也需要转发一次(避免微信用 singleTask/singleTop 复用 Activity)
+        intent?.let {
+            try {
+                shareCallback?.onWeChatCallback(it)
+                ILog.d(tag, "onNewIntent: 已通过 ARouter 转发 onWeChatCallback")
+            } catch (e: Exception) {
+                ILog.e(tag, "onNewIntent: 转发 onWeChatCallback 失败", e)
+            }
+        }
     }
     
     override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {