fix: 修复游戏详情网页不能左右滑动切换Tab的问题

This commit is contained in:
叶子维
2025-03-04 17:19:37 +08:00
parent 02ed9c247a
commit ae0ef717d5
3 changed files with 23 additions and 3 deletions

View File

@ -727,6 +727,8 @@ class GameDetailWrapperFragment : BaseLazyFragment(), IScrollable {
fragment = fragment ?: WebFragment()
bundle.putString(EntranceConsts.KEY_ENTRANCE, "游戏专区")
bundle.putString(EntranceConsts.KEY_URL, zone.link)
bundle.putBoolean(WebFragment.KEY_ENABLE_HORIZONTAL_SCROLL_DISPATCH, true)
bundle.putBoolean(WebFragment.KEY_FORCE_ENABLE_NESTED_SCROLL, true)
} else {
fragment = fragment ?: FuLiFragment()
}
@ -735,6 +737,12 @@ class GameDetailWrapperFragment : BaseLazyFragment(), IScrollable {
GameDetailTabEntity.TYPE_WEB -> {
fragment = fragment ?: WebFragment()
bundle.putString(EntranceConsts.KEY_URL, tabEntity.link?.link)
bundle.putBoolean(WebFragment.KEY_ENABLE_HORIZONTAL_SCROLL_DISPATCH, true)
bundle.putBoolean(WebFragment.KEY_FORCE_ENABLE_NESTED_SCROLL, true)
bundle.putBoolean(
WebFragment.KEY_LEAVE_WEB_PAGE_TO_HANDLE_BACK_PRESSED,
tabEntity.link?.link?.contains("leave_web_page_handle_back_pressed=true") == true
)
}
GameDetailTabEntity.TYPE_GIFT -> {

View File

@ -117,6 +117,7 @@ class WebFragment : LazyFragment(), IScrollable {
private var mLeaveWebpageToHandleTitle = false //是否由网页处理标题
private var mClearHistoryOnLoaded = false // 是否加载完成以后清理掉旧的加载历史
private var mIsWebViewInstalled = true // 当前设备是否存在可用的 WebView
private var mForceEnableNestedScroll = false // 强制启用嵌套滚动
private var mTimeElapsedHelper: TimeElapsedHelper? = null
private lateinit var mJsApi: DefaultJsApi
@ -347,6 +348,7 @@ class WebFragment : LazyFragment(), IScrollable {
mIsSecurityCertification = args.getBoolean(KEY_IS_SECURITY_CERTIFICATION, false)
mLeaveWebpageToHandleTitle = args.getBoolean(KEY_LEAVE_WEB_PAGE_TO_HANDLE_TITLE, false)
mWebUrl = dealWithUrl(args.getString(EntranceConsts.KEY_URL, ""))
mForceEnableNestedScroll = args.getBoolean(KEY_ENABLE_HORIZONTAL_SCROLL_DISPATCH)
}
mJsApi = DefaultJsApi(
requireContext(),
@ -698,6 +700,9 @@ class WebFragment : LazyFragment(), IScrollable {
if (mIsHorizontalDispatcherEnabled) {
webview.enableHorizontalScrollDispatch()
}
if (mForceEnableNestedScroll) {
webview.enableForceNestedScroll()
}
webview.addJavascriptObject(mJsApi, null)
webview.addJavascriptObject(ShareNativeCallback(), "share")
webview.addJavascriptObject(InternalJsApi(), "internal")
@ -1047,6 +1052,7 @@ class WebFragment : LazyFragment(), IScrollable {
const val KEY_GAME_NAME = "game_name"
const val KEY_CLOSE_BUTTON = "close_button"
const val KEY_ENABLE_HORIZONTAL_SCROLL_DISPATCH = "enable_horizontal_scroll_dispatch"
const val KEY_FORCE_ENABLE_NESTED_SCROLL = "force_enable_nested_scroll"
private const val REQUEST_PICK_IMAGE = 101
}
}