feat webSalix in webView refs #7636
This commit is contained in:
parent
d2cd21f2eb
commit
c87707a0ca
|
@ -10,13 +10,18 @@ import android.view.GestureDetector
|
|||
import android.view.MotionEvent
|
||||
import android.view.View
|
||||
import android.webkit.WebChromeClient
|
||||
import android.webkit.WebResourceRequest
|
||||
import android.webkit.WebView
|
||||
import android.webkit.WebViewClient
|
||||
import android.widget.ImageView
|
||||
import androidx.activity.OnBackPressedCallback
|
||||
import androidx.activity.OnBackPressedDispatcher
|
||||
import androidx.core.view.GestureDetectorCompat
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import es.verdnatura.R
|
||||
import es.verdnatura.databinding.FragmentWebBinding
|
||||
import es.verdnatura.presentation.base.BaseFragment
|
||||
import es.verdnatura.presentation.common.OnBackPressedListener
|
||||
import es.verdnatura.presentation.common.OnOptionsSelectedListener
|
||||
import es.verdnatura.presentation.common.ToolBarAdapterTooltip
|
||||
import es.verdnatura.presentation.view.component.CustomDialog
|
||||
|
@ -26,10 +31,12 @@ import kotlin.math.abs
|
|||
@Suppress("UNUSED_ANONYMOUS_PARAMETER")
|
||||
class WebFragment(
|
||||
var entryPoint: String = ""
|
||||
) : BaseFragment<FragmentWebBinding, ControladorViewModel>(ControladorViewModel::class) {
|
||||
) : BaseFragment<FragmentWebBinding, ControladorViewModel>(ControladorViewModel::class),
|
||||
OnBackPressedListener {
|
||||
private lateinit var gestureDetector: GestureDetectorCompat
|
||||
override fun getLayoutId(): Int = R.layout.fragment_web
|
||||
private lateinit var customDialog: CustomDialog
|
||||
private lateinit var backDispatcher: OnBackPressedDispatcher
|
||||
|
||||
companion object {
|
||||
fun newInstance(entryPoint: String) = WebFragment(entryPoint)
|
||||
|
@ -45,6 +52,19 @@ class WebFragment(
|
|||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
|
||||
requireActivity().onBackPressedDispatcher.addCallback(
|
||||
viewLifecycleOwner,
|
||||
object : OnBackPressedCallback(true) {
|
||||
override fun handleOnBackPressed() {
|
||||
if (!onBackPressedHandled()) {
|
||||
isEnabled = false
|
||||
requireActivity().onBackPressedDispatcher
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
gestureDetector = GestureDetectorCompat(
|
||||
requireActivity(),
|
||||
object : GestureDetector.SimpleOnGestureListener() {
|
||||
|
@ -59,7 +79,7 @@ class WebFragment(
|
|||
val deltaAbsX = abs(deltaX)
|
||||
val deltaAbsY = abs(deltaY)
|
||||
if (deltaAbsX > deltaAbsY) {
|
||||
if (velocityX > 2000 && velocityY < 500 && velocityY>=0) {
|
||||
if (velocityX > 2000 && velocityY < 500 && velocityY >= 0) {
|
||||
|
||||
binding.webView.goBack()
|
||||
return true
|
||||
|
@ -78,7 +98,9 @@ class WebFragment(
|
|||
@SuppressLint("ClickableViewAccessibility", "SetJavaScriptEnabled")
|
||||
private fun setWeb() {
|
||||
|
||||
binding.webView.webChromeClient = WebChromeClient()
|
||||
binding.webView.webChromeClient = WebChromeClient(
|
||||
|
||||
)
|
||||
|
||||
val webSettings = binding.webView.settings
|
||||
webSettings.javaScriptEnabled = true
|
||||
|
@ -93,6 +115,15 @@ class WebFragment(
|
|||
binding.webView.setOnTouchListener { v, event ->
|
||||
gestureDetector.onTouchEvent(event)
|
||||
}
|
||||
binding.webView.webViewClient = object : WebViewClient() {
|
||||
override fun shouldOverrideUrlLoading(
|
||||
view: WebView?,
|
||||
request: WebResourceRequest?
|
||||
): Boolean {
|
||||
binding.webView.loadUrl(request?.url.toString())
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
val dataScanned = JSONObject(entryPoint)
|
||||
|
||||
|
@ -159,5 +190,16 @@ class WebFragment(
|
|||
}
|
||||
}
|
||||
|
||||
override fun onBackPressedHandled(): Boolean {
|
||||
|
||||
if (binding.webView.canGoBack()) {
|
||||
binding.webView.goBack()
|
||||
}else{
|
||||
ma.onMyBackPressed()
|
||||
}
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue