如何将网页不可用页面替换为自定义页面? (WEBVIEW) [英] How to Replace Webpage Not Available Page To Custom Page? (WEBVIEW)

查看:89
本文介绍了如何将网页不可用页面替换为自定义页面? (WEBVIEW)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想从Webpage not AvailableERR_NAME_NOT_RESOLVED

我的页面没有Internet连接" ?

,并具有刷新按钮,可以重新联机(如果已联机或已连接互联网),如果没有连接,请停留在页面无互联网连接中.

and with a refresh button to back online if online or connected internet again, and if didn't connect just stay in Page No Internet Connection.

看起来像页面HTML,不是默认页面,而不是android页面,或者像自定义页面这样的调用.

Look like a page HTML not default notif page android or maybe this call like Custom Page.

我将Android StudioKotlin一起使用

这是MyActivity

class MainActivity : AppCompatActivity() {
    internal var webView: WebView? = null
    private var mCM: String? = null
    private var mUM: ValueCallback<Uri>? = null
    private var mUMA: ValueCallback<Array<Uri?>>? = null

    //select whether you want to upload multiple files (set 'true' for yes)
    private val multiple_files = false

    @SuppressLint("SetJavaScriptEnabled", "WrongViewCast")
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        webView = findViewById(R.id.ifView) as WebView
        assert(webView != null)
        val webSettings = webView!!.settings
        webSettings.javaScriptEnabled = true
        webSettings.allowFileAccess = true

        if (Build.VERSION.SDK_INT >= 21) {
            webSettings.mixedContentMode = 0
            webView!!.setLayerType(View.LAYER_TYPE_HARDWARE, null)
        }
        else {
            webView!!.setLayerType(View.LAYER_TYPE_SOFTWARE, null)
        }
        webView!!.webViewClient = Callback()
        webView!!.loadUrl("http://xxx.xxx.xxx") //add your test web/page address here
        webView!!.setWebChromeClient(object : WebChromeClient()
}

这是我的代码Callback

inner class Callback : WebViewClient() {
        override fun onReceivedError(view: WebView, errorCode: Int, description: String, failingUrl: String) {
            Toast.makeText(applicationContext, "Failed loading app!", Toast.LENGTH_SHORT).show()
            }
    }

可以肯定的是,我的应用程序希望加载webview离线的离线页面,以通知应用程序没有连接互联网,并在webview在线时再次连接到显示在线页面的互联网

For sure, my apps want load offline page where webview offline to notif the apps didn't connect internet, and connect again to the internet showing online page when webview online

推荐答案

您可以添加loadUrl来调用asset文件夹中的自定义页面. 更改名称页的页面名称.

You can add loadUrl to call custom page in asset folder. Change the page name of your name page.

inner class Callback : WebViewClient() {
        override fun onReceivedError(view: WebView, errorCode: Int, description: String, failingUrl: String) {
            Toast.makeText(applicationContext, "No Internet Access!", Toast.LENGTH_SHORT).show()
            view.loadUrl("file:///android_asset/nameofyourpage.html")
         }
}

这篇关于如何将网页不可用页面替换为自定义页面? (WEBVIEW)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆