webview返回而不关闭应用程序(kotlin)

伦斯

M应用程序将显示一个WebView,但当我进入网站的其他部分(如cat.html)然后点击时,它将关闭该应用程序,而不是返回至index.html(首页)

因此,我想知道这将如何工作,例如如何在index.html不关闭应用程序情况下返回

我的代码:

class HomeFragment : Fragment() {

    private lateinit var homeViewModel: HomeViewModel

    override fun onCreateView(
        inflater: LayoutInflater, container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {
        val v = inflater.inflate(R.layout.fragment_home, container, false)
        val webview = v.findViewById<View>(R.id.webview) as WebView
        webview.settings.javaScriptEnabled = true
        webview.settings.setAppCacheEnabled(true)
        webview.webViewClient = WebViewClient()
        webview.loadUrl("file:///android_asset/newsfeed/index.html")
        return v
    }

}
这本书

TL; DR

您必须onBackPressed()直接在Activity中(而不是在Fragment中)方法内部处理这种情况

您可以通过多种方式处理这种情况,例如通过:

  • 直接使用Fragment对象

  • 为此实现一些额外的接口

  • 视图模型

如果您将WebView直接在活动中使用

您可以使用以下简单的方法:

override fun onBackPressed() {
    if (webView.canGoBack()) {
        // If possible - go back in WebView
        webView.goBack()
    } else {
        // If NOT possible - just handle going back as always
        super.onBackPressed()
    }
}

webView您的视图在XML布局文件(在onCreate()方法中已充气内在哪里

但是,当您拥有WebViewFragment的内部时,您必须:

1)在您的Fragment中创建新方法

  • 返回信息“是否可以在WebView中返回”。

  • “说”应该返回的WebView

我修复了一点Android流程(使用onCreateView),并使用Kotlin Extension在WebView

class HomeFragment : Fragment() {

    /**
     * New method, allowing as to check "can we go back in WebView or not"
     */
    fun webViewCanGoBack() = webview.canGoBack()

    /**
     * New method, saying WebView that should go back
     */
    fun webViewGoBack() = webview.goBack()


    override fun onCreateView(
        inflater: LayoutInflater,
        container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? = inflater.inflate(R.layout.fragment_home, container, false)

    @SuppressLint("SetJavaScriptEnabled")
    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)

        webview.run {
            settings.run {
                javaScriptEnabled = true
                setAppCacheEnabled(true)
            }

            webViewClient = WebViewClient()
            loadUrl("http://www.google.com")
        }
    }
}

2)onBackPressed()在您的活动的方法内部使用新方法

请记住,您是在存在该片段的实例时调用此方法的,因此您必须将其存储在某个位置:

override fun onBackPressed() {
    if (homeFragment.webViewCanGoBack()) {
        // If possible - go back in WebView
        homeFragment.webViewGoBack()
    } else {
        // If NOT possible - just handle going back as always
        super.onBackPressed()
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

清理Powerpoint应用程序而不关闭打开的实例

来自分类Dev

android listview更新/刷新数据而不关闭应用程序

来自分类Dev

清理Powerpoint应用程序而不关闭打开的实例

来自分类Dev

system.exit(0)返回上一个屏幕,单击不关闭整个应用程序

来自分类Dev

返回应用程序并按关闭按钮时,防止重新加载活动/ Webview

来自分类Dev

在Kafka Streams应用程序中关闭或不关闭RocksDB Cache和WriteBufferManager

来自分类Dev

在不关闭整个应用程序的情况下无法关闭/卸载插件

来自分类Dev

按返回按钮关闭应用程序

来自分类Dev

防止返回或关闭应用程序

来自分类Dev

在不关闭应用程序的情况下停止执行任何方法

来自分类Dev

如何在不关闭应用程序的情况下处理异常?

来自分类Dev

Android Webview onKeyDown强制关闭应用程序

来自分类Dev

Kotlin-findViewById启动后立即关闭应用程序

来自分类Dev

返回ResultSet而不关闭?

来自分类Dev

Web应用程序注销时从Webview返回App

来自分类Dev

Android Youtube Webview全屏返回按退出应用程序

来自分类Dev

返回主窗口/ C ++后,应用程序正在关闭

来自分类Dev

Titanium Properties getString说:null,如何在不关闭应用程序的情况下显示该值?

来自分类Dev

如何让这个简单的程序在不关闭的情况下返回?

来自分类Dev

onClick关闭应用程序

来自分类Dev

Ubuntu关闭应用程序

来自分类Dev

Ubuntu关闭应用程序

来自分类Dev

WebView中的垃圾收集器如何关闭Android应用程序?

来自分类Dev

WebView显示在ProgressDialog上使用空指针异常强制关闭应用程序

来自分类Dev

当屏幕关闭时,react-native ios 应用程序 webview 播放音频静音

来自分类Dev

Android Studio (Kotlin) - 每次关闭应用程序时,用户都必须重新登录应用程序

来自分类Dev

是否可以在不关闭任何正在运行的应用程序的情况下注销到任何其他DE?

来自分类Dev

如何在不关闭应用程序且不会丢失数据的情况下从Linux(Ubuntu 18.04)切换到Windows,反之亦然?

来自分类Dev

如何在应用程序Android Kotlin中打开WebView链接

Related 相关文章

  1. 1

    清理Powerpoint应用程序而不关闭打开的实例

  2. 2

    android listview更新/刷新数据而不关闭应用程序

  3. 3

    清理Powerpoint应用程序而不关闭打开的实例

  4. 4

    system.exit(0)返回上一个屏幕,单击不关闭整个应用程序

  5. 5

    返回应用程序并按关闭按钮时,防止重新加载活动/ Webview

  6. 6

    在Kafka Streams应用程序中关闭或不关闭RocksDB Cache和WriteBufferManager

  7. 7

    在不关闭整个应用程序的情况下无法关闭/卸载插件

  8. 8

    按返回按钮关闭应用程序

  9. 9

    防止返回或关闭应用程序

  10. 10

    在不关闭应用程序的情况下停止执行任何方法

  11. 11

    如何在不关闭应用程序的情况下处理异常?

  12. 12

    Android Webview onKeyDown强制关闭应用程序

  13. 13

    Kotlin-findViewById启动后立即关闭应用程序

  14. 14

    返回ResultSet而不关闭?

  15. 15

    Web应用程序注销时从Webview返回App

  16. 16

    Android Youtube Webview全屏返回按退出应用程序

  17. 17

    返回主窗口/ C ++后,应用程序正在关闭

  18. 18

    Titanium Properties getString说:null,如何在不关闭应用程序的情况下显示该值?

  19. 19

    如何让这个简单的程序在不关闭的情况下返回?

  20. 20

    onClick关闭应用程序

  21. 21

    Ubuntu关闭应用程序

  22. 22

    Ubuntu关闭应用程序

  23. 23

    WebView中的垃圾收集器如何关闭Android应用程序?

  24. 24

    WebView显示在ProgressDialog上使用空指针异常强制关闭应用程序

  25. 25

    当屏幕关闭时,react-native ios 应用程序 webview 播放音频静音

  26. 26

    Android Studio (Kotlin) - 每次关闭应用程序时,用户都必须重新登录应用程序

  27. 27

    是否可以在不关闭任何正在运行的应用程序的情况下注销到任何其他DE?

  28. 28

    如何在不关闭应用程序且不会丢失数据的情况下从Linux(Ubuntu 18.04)切换到Windows,反之亦然?

  29. 29

    如何在应用程序Android Kotlin中打开WebView链接

热门标签

归档