Commit 98dfd1f4 authored by shiyl's avatar shiyl

优化XBridBusiness,由外部传参

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