android webview(AgentWeb) 革新无效标题

计算机软件开发 2024-9-23 23:57:09 74 0 来自 中国
标题形貌:我的h5链接中有#号,好比:url="home/#/?token=123"
就是由于这个#号导致页面革新不好用了。
办理方案(总体思绪):handler延长革新。
我用到的技能:
1.AgentWeb(对安卓的WebView做了一些封装,你也可以把它看成安卓的WebView。传送门)

2.handler和h5革新相干。
假如你用的是安卓的WebView,你看完办理方案(思绪)后,可以直接去看第6条。

下面是代码
1.全局变量
private Handler dataHandler;private AgentWeb mAgentWeb;private String url = "https://www.baidu.com/";2.在onCreate()方法中创建handler和AgentWeb;里面的binding.linWeb就是xml结构文件中的lin_web
//创建handlerdataHandler = new Handler(Looper.getMainLooper());mAgentWeb = AgentWeb.with(this)                .setAgentWebParent(binding.linWeb, new LinearLayout.LayoutParams(-1, -1))                .closeIndicator()//利用默认进度条                .setWebViewClient(new WebViewClient())                .createAgentWeb()                .ready()                .go(url);3.xml文件
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    androidrientation="vertical">    <LinearLayout        android:id="@+id/lin_web"        android:layout_width="match_parent"        android:layout_height="match_parent"        androidrientation="vertical" /></LinearLayout>4革新方法
/**     * 革新页面     */    public void reloadPage() {        if (mAgentWeb == null) return;        //拿到这个页面,末了一次加载的url        String lastLoadUrl = mAgentWeb.getWebCreator().getWebView().getUrl();        //克制前次革新        mAgentWeb.getUrlLoader().stopLoading();        AgentWebConfig.removeAllCookies();        AgentWebConfig.clearDiskCache(this.getContext());        mAgentWeb.getUrlLoader().loadUrl(url);        if (dataHandler != null && lastLoadUrl != null && lastLoadUrl.equals(url)) {            dataHandler.postDelayed(new Runnable() {                @Override                public void run() {                    mAgentWeb.getWebCreator().getWebView().reload();                }            }, 150);        }}5.假如你的革新尚有标题,那大概和h5的写法有关,用用下面这种革新方法,我们项目里h5我都是用了2种革新方法才办理,坑啊。
//革新页面    public void reloadPage() {        if (mAgentWeb == null) return;        //拿到这个页面,末了一次加载的url        String lastLoadUrl = mAgentWeb.getWebCreator().getWebView().getUrl();        mAgentWeb.getUrlLoader().stopLoading();        AgentWebConfig.removeAllCookies();        AgentWebConfig.clearDiskCache(this.getContext());        if (handler != null) {            if (lastLoadUrl != null && lastLoadUrl.equals(url)) {                mAgentWeb.getWebCreator().getWebView().reload();            } else {                mAgentWeb.getUrlLoader().loadUrl(url);                handler.postDelayed(new Runnable() {                    @Override                    public void run() {                        mAgentWeb.getWebCreator().getWebView().reload();                    }                }, 150);            }        }    }好了,上面就是AgentWeb的全部内容了,下面的和安卓自带的WebView相干。

6.安卓自带的(WebView)
起首阐明安卓自带的webview我没有实验,但是原理和思绪是一样的,实验的本钱也不大。下面的是伪代码:
public void reloadPage() {        if (webview == null) return;        //拿到这个页面,末了一次加载的url        String lastLoadUrl = webview.getUrl();//TODO 留意假如你有缓存,留意这里要清一下缓存        webview.loadUrl(url);        if (dataHandler != null && lastLoadUrl != null && lastLoadUrl.equals(url)) {            dataHandler.postDelayed(new Runnable() {                @Override                public void run() {                    webview.reload();                }            }, 150);        }}//留意,大概是下面的革新方法,2选1即可//革新页面    public void reloadPage2() {        if (webview == null) return;        //拿到这个页面,末了一次加载的url        String lastLoadUrl = webview.getUrl();//TODO 留意假如你有缓存,留意这里要清一下缓存        if (handler != null) {            if (lastLoadUrl != null && lastLoadUrl.equals(url)) {                webview.reload();            } else {                webview.loadUrl(url);                handler.postDelayed(new Runnable() {                    @Override                    public void run() {                        webview.reload();                    }                }, 150);            }        }    }好了,假如对你有资助可以帮忙点一个小红心~
您需要登录后才可以回帖 登录 | 立即注册

Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )

GMT+8, 2024-11-24 08:57, Processed in 0.154755 second(s), 32 queries.© 2003-2025 cbk Team.

快速回复 返回顶部 返回列表