@Chesterfield25

Как правильно реализовать onBackPressed и сделать прозрачным?

Я подключил JivoChat для поддержки в свое приложение но не могу разобраться как сделать так что бы при нажатии на кнопку назад как в самом чате так и в фрагменте в котором находится webView происходил возврат назад а не выход из приложения, а так же сам чат был прозрачным?!

App
class App : Application() {

    override fun onCreate() {
        super.onCreate()
        Jivo.init(
            appContext = this,
            widgetId = "Q7BcPYNqCG"
        )
        Jivo.setConfig(Config.Builder()
            .setOnBackPressed {

                activity?.onBackPressedDispatcher?.addCallback(onBackPressedCallback)
            }
            .build()
        )
    }

    private val onBackPressedCallback = object : OnBackPressedCallback(true) {
        override fun handleOnBackPressed() {
            // On back pressed
        }
    }
}


MainActivity
class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        if (savedInstanceState == null) {
            supportFragmentManager.beginTransaction()
                .replace(R.id.container, MainFragment())
                .commit()
        }
    }
}


MainFragment
class MainFragment: Fragment(R.layout.fragment_main) {

    private lateinit var webView: WebView

    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)

        view.findViewById<View>(R.id.jivoBtn)?.run {
            setOnClickListener {
                parentFragmentManager
                    .beginTransaction()
                    .add(R.id.container, JivoChatFragment())
                    .commit()
            }
        }

        webView = view.findViewById(R.id.webView)
        // WebViewClient allows you to handle
        // onPageFinished and override Url loading.
        webView.webViewClient = WebViewClient()

        // this will load the url of the website
        webView.loadUrl("https://www.geeksforgeeks.org/")

        // this will enable the javascript settings, it can also allow xss vulnerabilities
        webView.settings.javaScriptEnabled = true

        // if you want to enable zoom feature
        webView.settings.setSupportZoom(true)
    }


}
  • Вопрос задан
  • 134 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы