Commit 98dfd1f4 authored by shiyl's avatar shiyl

优化XBridBusiness,由外部传参

parent 93d7c8c4
......@@ -7,7 +7,9 @@ package com.yidian.common
class XBirdPageConstants {
companion object {
// 商品 - 发布商品
// webView加载的页面url
const val PAGE_URL = "page_url"
// 商品 - 发布商品地址,需要和config.json中的name一致
const val COMMODITY_PUBLISH_COMMODITY = "xbrid_coupon_publish"
}
}
......
......@@ -6,12 +6,17 @@ import androidx.fragment.app.Fragment
import androidx.viewpager2.adapter.FragmentStateAdapter
import com.google.android.material.tabs.TabLayout
import com.google.android.material.tabs.TabLayoutMediator
import com.orhanobut.hawk.Hawk
import com.yidian.common.HawkConfig
import com.yidian.common.XBirdPageConstants
import com.yidian.common.XEventConfig
import com.yidian.common.XRouterPathConstants
import com.yidian.common.mvvm.BaseMvvmActivity
import com.yidian.news.util.StorageUtils
import com.yidian.shenghuoquan.commodity.R
import com.yidian.shenghuoquan.commodity.databinding.CommodityActivityCommodityManagementBinding
import com.yidian.shenghuoquan.commodity.ui.coupon.fragment.CommodityListFragment
import com.yidian.shenghuoquan.commodity.ui.coupon.viewmodel.CommodityListItemViewModel
import com.yidian.shenghuoquan.commodity.ui.coupon.viewmodel.CommodityManagementViewModel
import com.yidian.xarc.xevent.XBaseEvent
import com.yidian.xarc.xevent.XEventManager
......@@ -90,7 +95,8 @@ class CommodityManagementActivity : BaseMvvmActivity<CommodityActivityCommodityM
//发布商品
binding.tvCommodityPublish.setOnClickListener {
// 跳转商品发布页面 新发布商品不传id
XPageManager.push(XRouterPathConstants.COMMON_WEB_VIEW_ACTIVITY, null)
val pageUrl = XBirdPageConstants.COMMODITY_PUBLISH_COMMODITY + "?life_account_id=${Hawk.get(HawkConfig.LifeAccountId, "")}"
XPageManager.push(XRouterPathConstants.COMMON_WEB_VIEW_ACTIVITY, hashMapOf(Pair(XBirdPageConstants.PAGE_URL, pageUrl)))
}
}
......
......@@ -3,6 +3,7 @@ package com.yidian.shenghuoquan.commodity.ui.coupon.viewmodel
import androidx.lifecycle.MutableLiveData
import com.orhanobut.hawk.Hawk
import com.yidian.common.HawkConfig
import com.yidian.common.XBirdPageConstants
import com.yidian.common.XRouterPathConstants
import com.yidian.common.mvvm.BaseViewModel
import com.yidian.shenghuoquan.commodity.dto.Goods
......@@ -63,7 +64,10 @@ class CommodityListItemViewModel : BaseViewModel(), ICommodityOperationCallback
*/
fun commodityEdit(item: Goods) {
// 跳转商品发布页面 传入商品id
XPageManager.push(XRouterPathConstants.COMMON_WEB_VIEW_ACTIVITY, hashMapOf(Pair(EXTRA_COMMODITY_ID, item.goodsSpuId)))
val pageUrl = XBirdPageConstants.COMMODITY_PUBLISH_COMMODITY +
"?life_account_id=${Hawk.get(HawkConfig.LifeAccountId, "")}" +
"&coupon_id=${item.goodsSpuId}"
XPageManager.push(XRouterPathConstants.COMMON_WEB_VIEW_ACTIVITY, hashMapOf(Pair(XBirdPageConstants.PAGE_URL, pageUrl)))
}
/**
......
......@@ -8,6 +8,7 @@ import androidx.recyclerview.widget.LinearLayoutManager
import com.scwang.smart.refresh.layout.api.RefreshLayout
import com.scwang.smart.refresh.layout.listener.OnRefreshListener
import com.yidian.common.AppConfig
import com.yidian.common.XBirdPageConstants
import com.yidian.common.XEventConfig
import com.yidian.common.XRouterPathConstants
import com.yidian.common.base.BaseActivity
......@@ -218,6 +219,12 @@ class MerchantCenterActivity : BaseActivity<ActivityMerchantCenterBinding>(), Me
MerchantAuthManagementActivity.EXTRA_LIFE_ACCOUNT_ID to curLifeAccount.life_account_id,
MerchantAuthManagementActivity.EXTRA_LIFE_ACCOUNT_TAG_KEY to curLifeAccount.tag.tag_key
)
// 进入发布商品的url
val pageUrl = XBirdPageConstants.COMMODITY_PUBLISH_COMMODITY + "?life_account_id=${curLifeAccount.life_account_id}"
functionParamsMap[data[0].functions[0].functionId] =
hashMapOf(
XBirdPageConstants.PAGE_URL to pageUrl
)
}
/**
......
......@@ -153,10 +153,10 @@ class EditStoreActivity : BaseActivity<ActivityStoreEditBinding>(), CommonTopBar
ToastUtils.showShortSafe("请选择门店地址")
return false
}
if (store.latitude.isBlank() || store.longitude.isBlank()) {
ToastUtils.showShortSafe("门店位置坐标信息为空")
return false
}
// if (store.latitude.isBlank() || store.longitude.isBlank()) {
// ToastUtils.showShortSafe("门店位置坐标信息为空")
// return false
// }
if (storePhoneNum.isBlank()) {
ToastUtils.showShortSafe("请输入联系电话")
return false
......
......@@ -3,12 +3,12 @@ package com.yidian.shenghuoquan.xbirdbusiness.ui
import android.webkit.WebChromeClient
import android.webkit.WebView
import androidx.activity.viewModels
import com.orhanobut.hawk.Hawk
import com.yidian.common.HawkConfig
import com.yidian.common.XBirdPageConstants
import com.yidian.common.XRouterPathConstants
import com.yidian.common.extensions.initTitleBar
import com.yidian.common.mvvm.BaseMvvmActivity
import com.yidian.common.utils.DialogUtils
import com.yidian.common.utils.ToastUtils
import com.yidian.shenghuoquan.xbirdbusiness.R
import com.yidian.shenghuoquan.xbirdbusiness.databinding.XbridActivityCommonWebViewBinding
import com.yidian.xarc.xbrid.XBridManager
......@@ -34,85 +34,48 @@ class CommonWebViewActivity : BaseMvvmActivity<XbridActivityCommonWebViewBinding
}
override fun initView() {
initTitleBar(binding.include.toolbar, binding.include.tvTitle, "发布商品")
val serializableExtra = intent.getSerializableExtra(XRouterPathConstants.ParamsKey)
if (serializableExtra == null) {
initWebView()
// 提示页面必须传参才能进入
ToastUtils.showShortSafe("需要传递pageUrl")
} else {
val paramsMap = serializableExtra as HashMap<*, *>
val couponId = paramsMap[couponId] as String
initWebView(couponId)
val webViewUrl = paramsMap[XBirdPageConstants.PAGE_URL] as String?
if (webViewUrl.isNullOrBlank()) {
ToastUtils.showShortSafe("pageUrl不能为空")
return
}
url = webViewUrl
Timber.e("页面的URL : $webViewUrl")
// 判断目的页面
when (XBridManager.getXBridPageName(webViewUrl)) {
XBirdPageConstants.COMMODITY_PUBLISH_COMMODITY -> initPublishCommodityWebView(webViewUrl)
else -> {
ToastUtils.showShortSafe("请传递pageUrl")
}
}
}
}
private fun initWebView(couponId: String = "") {
/**
* 初始化发布商品页面
*/
private fun initPublishCommodityWebView(webViewUrl: String) {
initTitleBar(binding.include.toolbar, binding.include.tvTitle, "发布商品")
webView = XBridManager.getWebView(this, "testidenfier", binding.commonWebView)
val lifeAccountId = Hawk.get(HawkConfig.LifeAccountId, "")
val webUrl = if (couponId.isNotBlank()) {
"?coupon_id=$couponId&life_account_id=$lifeAccountId"
} else {
"?life_account_id=$lifeAccountId"
}
webView.loadUrl("xbrid_coupon_publish$webUrl")
Timber.e("请求地址: xbrid_coupon_publish$webUrl")
webView.loadUrl(webViewUrl)
Timber.tag("CommonWebView").e(" 请求地址: $webViewUrl")
webView.webChromeClient = object : WebChromeClient() {
override fun onProgressChanged(view: WebView?, newProgress: Int) {
super.onProgressChanged(view, newProgress)
if (newProgress == 100) {
Timber.e("发布优惠券页面加载完成")
Timber.tag("CommonWebView").e(" CommonWebView 页面加载完成")
}
}
}
WebView.setWebContentsDebuggingEnabled(true)
}
// override fun initView() {
// val serializableExtra = intent.getSerializableExtra(XRouterPathConstants.ParamsKey)
// if (serializableExtra == null) {
// // 提示页面必须传参才能进入
// ToastUtils.showShortSafe("需要传递pageUrl")
// } else {
// val paramsMap = serializableExtra as HashMap<*, *>
// val webViewUrl = paramsMap[pageUrl] as String?
// if (webViewUrl.isNullOrBlank()) {
// ToastUtils.showShortSafe("pageUrl不能为空")
// return
// }
// url = webViewUrl
//// when (XBridManager.getXBridPageName(webViewUrl).equals(XBirdPageConstants.COMMODITY_PUBLISH_COMMODITY)) {
////
//// }
// initWebView()
// }
//
//
//
// }
//
// private fun initWebView() {
// initTitleBar(binding.include.toolbar, binding.include.tvTitle, "发布商品")
// webView = XBridManager.getWebView(this, "testidenfier", binding.commonWebView)
//// val lifeAccountId = Hawk.get(HawkConfig.LifeAccountId, "")
//// val webUrl = if (couponId.isNotBlank()) {
//// "?coupon_id=$couponId&life_account_id=$lifeAccountId"
//// } else {
//// "?life_account_id=$lifeAccountId"
//// }
//// webView.loadUrl("xbrid_coupon_publish$webUrl")
// webView.loadUrl(url)
// Timber.e("CommonWebView 请求地址: $url")
// webView.webChromeClient = object : WebChromeClient() {
// override fun onProgressChanged(view: WebView?, newProgress: Int) {
// super.onProgressChanged(view, newProgress)
// if (newProgress == 100) {
// Timber.e(" CommonWebView 页面加载完成")
// }
// }
// }
// WebView.setWebContentsDebuggingEnabled(true)
// }
override fun onDestroy() {
super.onDestroy()
if (::webView.isInitialized) {
......@@ -121,11 +84,14 @@ class CommonWebViewActivity : BaseMvvmActivity<XbridActivityCommonWebViewBinding
}
override fun onBackPressed() {
DialogUtils.showConfirmDialog(this, "返回后商品将不保存?")
when (XBridManager.getXBridPageName(url)) {
XBirdPageConstants.COMMODITY_PUBLISH_COMMODITY -> {
DialogUtils.showConfirmDialog(this, "返回后商品将不保存?")
}
else -> {
super.onBackPressed()
}
}
}
companion object {
const val pageUrl = "page_url"
const val couponId = "coupon_id"
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment