|
@@ -2,7 +2,10 @@ package com.mooxygen.user.wxapi
|
|
|
|
|
|
|
|
import android.content.Intent
|
|
import android.content.Intent
|
|
|
import android.os.Bundle
|
|
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.log.ILog
|
|
|
|
|
+import com.narutohuo.xindazhou.core.share.IShareCallback
|
|
|
import com.umeng.socialize.UMShareAPI
|
|
import com.umeng.socialize.UMShareAPI
|
|
|
import com.umeng.socialize.weixin.view.WXCallbackActivity
|
|
import com.umeng.socialize.weixin.view.WXCallbackActivity
|
|
|
|
|
|
|
@@ -22,16 +25,45 @@ import com.umeng.socialize.weixin.view.WXCallbackActivity
|
|
|
class WXEntryActivity : WXCallbackActivity() {
|
|
class WXEntryActivity : WXCallbackActivity() {
|
|
|
|
|
|
|
|
private val tag = "WXEntryActivity"
|
|
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?) {
|
|
override fun onCreate(savedInstanceState: Bundle?) {
|
|
|
super.onCreate(savedInstanceState)
|
|
super.onCreate(savedInstanceState)
|
|
|
|
|
+ // ARouter 依赖注入(用于解耦 base-core 与 capability-share)
|
|
|
|
|
+ ARouter.getInstance().inject(this)
|
|
|
ILog.d(tag, "onCreate: 微信回调 Activity 已启动")
|
|
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?) {
|
|
override fun onNewIntent(intent: Intent?) {
|
|
|
super.onNewIntent(intent)
|
|
super.onNewIntent(intent)
|
|
|
ILog.d(tag, "onNewIntent: 收到新的 Intent")
|
|
ILog.d(tag, "onNewIntent: 收到新的 Intent")
|
|
|
setIntent(intent) // 更新 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?) {
|
|
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
|