1、支付处理
This commit is contained in:
shenzuqiang 2026-03-06 18:47:18 +08:00
parent 054597ea96
commit 56cc572077
2 changed files with 31 additions and 7 deletions

View File

@ -62,6 +62,7 @@ import com.img.rabbit.utils.AppEventBus
import com.img.rabbit.utils.UniAppUtils import com.img.rabbit.utils.UniAppUtils
import com.img.rabbit.utils.UniMpUpdate import com.img.rabbit.utils.UniMpUpdate
import com.img.rabbit.utils.UniMpWXPayEvent import com.img.rabbit.utils.UniMpWXPayEvent
import com.img.rabbit.utils.UpdateUtils
import com.img.rabbit.viewmodel.GeneralViewModel import com.img.rabbit.viewmodel.GeneralViewModel
import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
@ -115,6 +116,12 @@ fun HomeScreen(
} }
} }
LaunchedEffect(Unit) {
UniAppUtils.uniMpFlow.collect { currentMap ->
Log.d("UniMP", "Map 变化了,当前数量: ${currentMap.size}")
}
}
var homeIconConfig by remember { mutableStateOf(PreferenceUtil.getUserConfig()?.config?.homeIconEntity) } var homeIconConfig by remember { mutableStateOf(PreferenceUtil.getUserConfig()?.config?.homeIconEntity) }
var uniVersionConfig by remember { mutableStateOf(PreferenceUtil.getUserConfig()?.config?.uniVersionEntity) } var uniVersionConfig by remember { mutableStateOf(PreferenceUtil.getUserConfig()?.config?.uniVersionEntity) }
LaunchedEffect(globalUserConfig) { LaunchedEffect(globalUserConfig) {

View File

@ -19,6 +19,8 @@ import io.dcloud.feature.unimp.config.UniMPOpenConfiguration
import io.dcloud.feature.unimp.config.UniMPReleaseConfiguration import io.dcloud.feature.unimp.config.UniMPReleaseConfiguration
import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.asStateFlow
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import java.io.File import java.io.File
import kotlin.jvm.java import kotlin.jvm.java
@ -28,7 +30,14 @@ object UniAppUtils {
/** /**
* 所有运行的UniMp小程序实体 * 所有运行的UniMp小程序实体
*/ */
val uniMpPair = mutableMapOf<String?, IUniMP?>() // val uniMpPair = mutableMapOf<String?, IUniMP?>()
private val _uniMpFlow = MutableStateFlow<Map<String?, IUniMP?>>(emptyMap())
val uniMpFlow = _uniMpFlow.asStateFlow()
fun updateUniMp(id: String?, mp: IUniMP?) {
val currentMap = _uniMpFlow.value.toMutableMap()
currentMap[id] = mp
_uniMpFlow.value = currentMap
}
//当前正在更新的小程序 //当前正在更新的小程序
var currentUpdateUniMp: UniVersionEntity? = null var currentUpdateUniMp: UniVersionEntity? = null
@ -42,7 +51,8 @@ object UniAppUtils {
*获取当前前台运行的UniMp小程序实体 *获取当前前台运行的UniMp小程序实体
*/ */
fun getCurrentUniMp(): IUniMP?{ fun getCurrentUniMp(): IUniMP?{
return uniMpPair.filter { it.value?.isRunning == true }.values.firstOrNull() return uniMpFlow.value.filter { it.value?.isRunning == true }.values.firstOrNull()
//return uniMpPair.filter { it.value?.isRunning == true }.values.firstOrNull()
} }
/** /**
* 是否存在更新 * 是否存在更新
@ -126,7 +136,7 @@ object UniAppUtils {
} }
private fun startUniMp(context: Context, uniVersion: UniVersionEntity, onResult:(loading: Boolean) -> Unit){ private fun startUniMp(context: Context, uniVersion: UniVersionEntity, onResult:(loading: Boolean) -> Unit){
val uniMp = uniMpPair[uniVersion.unimp_id] val uniMp = _uniMpFlow.value[uniVersion.unimp_id]//uniMpPair[uniVersion.unimp_id]
if(uniMp?.isRuning == true){ if(uniMp?.isRuning == true){
Log.i("UniAppUtils", "startUniMp: 运行中...") Log.i("UniAppUtils", "startUniMp: 运行中...")
uniMp.showUniMP() uniMp.showUniMP()
@ -136,7 +146,8 @@ object UniAppUtils {
if(uniVersion.unimp_type == "wx"){ if(uniVersion.unimp_type == "wx"){
configuration.splashClass = UniMPSplashView::class.java configuration.splashClass = UniMPSplashView::class.java
} }
uniMpPair[uniVersion.unimp_id] = DCUniMPSDK.getInstance().openUniMP(context, uniVersion.unimp_id, configuration) updateUniMp(uniVersion.unimp_id, DCUniMPSDK.getInstance().openUniMP(context, uniVersion.unimp_id, configuration))
//uniMpPair[uniVersion.unimp_id] = DCUniMPSDK.getInstance().openUniMP(context, uniVersion.unimp_id, configuration)
} }
onResult(false) onResult(false)
} }
@ -152,9 +163,13 @@ object UniAppUtils {
} }
}else{ }else{
if(uniMpPair[uniMpId]?.isRuning == true){ val uniMp = _uniMpFlow.value[uniMpId]
uniMpPair[uniMpId]?.closeUniMP() if(uniMp?.isRuning == true){
uniMp.showUniMP()
} }
// if(uniMpPair[uniMpId]?.isRuning == true){
// uniMpPair[uniMpId]?.closeUniMP()
// }
// 启动直达页面 // 启动直达页面
startUniMpToPage(context, uniMpId, uniMpType, pagePath) startUniMpToPage(context, uniMpId, uniMpType, pagePath)
} }
@ -166,7 +181,8 @@ object UniAppUtils {
configuration.splashClass = UniMPSplashView::class.java configuration.splashClass = UniMPSplashView::class.java
} }
configuration.path = pagePath configuration.path = pagePath
uniMpPair[uniMpId] = DCUniMPSDK.getInstance().openUniMP(context, uniMpId, configuration) updateUniMp(uniMpId, DCUniMPSDK.getInstance().openUniMP(context, uniMpId, configuration))
// uniMpPair[uniMpId] = DCUniMPSDK.getInstance().openUniMP(context, uniMpId, configuration)
} }
private fun releaseWgt(versionEntity: UniVersionEntity, onReleaseWgt: (isSuccess: Boolean, versionEntity: UniVersionEntity) -> Unit) { private fun releaseWgt(versionEntity: UniVersionEntity, onReleaseWgt: (isSuccess: Boolean, versionEntity: UniVersionEntity) -> Unit) {
@ -318,6 +334,7 @@ object UniAppUtils {
extraData.put("host", "${Constants.RELEASE_BASE_URL}/") extraData.put("host", "${Constants.RELEASE_BASE_URL}/")
extraData.put("decrypt", Constants.AESDecrypt) extraData.put("decrypt", Constants.AESDecrypt)
extraData.put("encrypt", Constants.Signature) extraData.put("encrypt", Constants.Signature)
extraData.put("isCombo", "ok")
} }
} }
} }