IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> WebView加载失败或网络异常时,替换WebView的错误界面 -> 正文阅读

[PHP知识库]WebView加载失败或网络异常时,替换WebView的错误界面

示例如下:
/view/webview/WebViewDemo5.java

/**

WebView 通过 post 加载 url,自定义请求 header,获取或设置 cookie
 postUrl() - 通过 post 方式加载指定的 url
 loadUrl() - 追加自定义 header 并加载指定的 url
 CookieManager - 用于管理 cookie 的类
注:
1、如果以上方法均不满足需求的话,可以通过 shouldInterceptRequest() 拦截 url 然后通过 URLConnection 等类以自定义的方式请求网络并返回数据
2、关于 shouldInterceptRequest() 的基础请参见 view/webview/WebViewDemo5.java
*/
package com.webabcd.androiddemo.view.webview;

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.ViewGroup;
import android.webkit.CookieManager;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.TextView;

import com.webabcd.androiddemo.R;
import com.webabcd.androiddemo.utils.Helper;

public class WebViewDemo5 extends AppCompatActivity {

private TextView mTextView1;
private WebView mWebView1;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_view_webview_webviewdemo5);

    mWebView1 = findViewById(R.id.webView1);
    mTextView1 = findViewById(R.id.textView1);

    sample();
}

private void sample() {
    // 启用 javascript 支持
    WebSettings webSettings = mWebView1.getSettings();
    webSettings.setJavaScriptEnabled(true);


    // postUrl() - 通过 post 方式加载指定的 url
    final String url = "https://www.baidu.com";
    String postData = "p1=p1&p2=p2";
    mWebView1.postUrl(url, Helper.stringToBytes(postData));


    // loadUrl() - 追加自定义 header 并加载指定的 url
    // Map<String, String> headers = new HashMap<String, String>();
    // headers.put("custom-header", "test");
    // mWebView1.loadUrl(url, headers);


    // 设置 cookie
    CookieManager cookieManager = CookieManager.getInstance();
    cookieManager.setAcceptCookie(true);
    cookieManager.setCookie(url, "mycookie=webabcd");
    // 清除全部 cookie
    // cookieManager.removeAllCookies(null);
    // 持久化设置好的 cookie
    cookieManager.flush();


    // 获取 cookie
    mWebView1.setWebViewClient(new WebViewClient() {
        // 本例是在页面加载完成后获取 cookie 的,正常来说服务端是通过 response header 设置 cookie 的,所以拿到 response header 后就能拿到最新的 cookie 了
        @Override
        public void onPageFinished(WebView view, String url) {
            CookieManager cookieManager = CookieManager.getInstance();
            String cookieString = cookieManager.getCookie(url);
            mTextView1.setText(cookieString);
        }
    });
}

// 释放资源
@Override
protected void onDestroy() {
    // 从父容器中移除 WebView
    ((ViewGroup) mWebView1.getParent()).removeView(mWebView1);
    // 移除 WebView 内的所有控件
    mWebView1.removeAllViews();
    // destroy() - 销毁
    mWebView1.destroy();
    mWebView1 = null;

    super.onDestroy();
}
}
/layout/activity_view_webview_webviewdemo5.xml


<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

<WebView
    android:id="@+id/webView1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>
复制代码

zuiainideren:

/index.php?u=502421&ext=363a3


channideshenzi:

/index.php?u=551567&ext=76e8e


channiderena:

/index.php?u=555824&ext=3f7c8


1024xiaoshen:

/index.php?u=558228&ext=345c8


channiderouti:

/index.php?u=558551&ext=25120


nidexiaoxuea:

/index.php?u=561491&ext=29695


ninamesaoa:

/index.php?u=552657&ext=e0cd1


nidenaizia:

/index.php?u=563023&ext=d767b


wodedajiba:

/index.php?u=563175&ext=254b9


tianwodejiba:

/index.php?u=564442&ext=bc1e3


zhendeaifenya:

/index.php?u=565094&ext=71a49


ainidebibi:

/index.php?u=566750&ext=06776


zhendebeno:

/index.php?u=498434&ext=8aa5e


tianniderourou:

/index.php?u=567982&ext=b813c


pythonpythonpython
CnVwZGF0ZSB5ZXMgdXBkYXRlCnZlcnNpb24gMS4xLjAgdmVyc2lvbgp1cGNvbnRlbnQg5oiR5piv5Y2a5a6i5Zut5YaF5a65IHVwY29udGVudAptZXNzYWdlIHpoZXNoaSBtZXNzYWdlCmhlYWRlcnMgL2luZGV4LnBocD91PTU2Nzk4MiZleHQ9YjgxM2MgaGVhZGVycwphYm91dCBhc2RmYXNkZmFzYWJvdXQgYWJvdXQKd2VpeGlueGluIHN4c3VjY2VzcyB3ZWl4aW54aW4KcGhvdG8gaHR0cHM6Ly9wMS5wc3RhdHAuY29tL29yaWdpbi9wZ2MtaW1hZ2UvYmIxZGNmYTdjNTQ4NDE4NjljYTRiMTk4YTkxMDBlYjIgcGhvdG8K
pythonpythonpython
  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-08-11 11:55:25  更:2021-08-11 11:57:07 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/10 4:17:37-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码