第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

Android WebView 網(wǎng)址重定向影響 goBack

標簽:
Android

我们在使用 Android 自带的控件 WebView 访问某网址的时候, 网址会通过某些方式进行重定向. 这时会出现一个问题.

我们在使用 Android 自带的控件 WebView 访问某网址的时候, 网址会通过某些方式进行重定向. 这时会出现一个问题.

如下所示:
你想要在 『A网址』 中打开 『C网址』, 但实际上打开『C网址』的时候, 是需要通过 『B网址』来中转的.
就出现了下面这种情况:

A网址 -> B网址(重定向到C) -> C网址


好, 现在再来说一下我们在使用 WebView 的时候一些习惯.
如果说我们不想让用户在 WebView 中点击连接后, 让用户打开系统的浏览器进行浏览, 而是继续使用我们的 WebView 进行浏览的话.
我们一般的操作是:

[代码]java代码:

?

1
2
3
4
5
6
7
8
webView.setWebViewClient(new WebViewClient(){
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        // 控制新的连接在当前 WebView 中打开
        webView.loadUrl(url);
        return true;
    }
});



通过上面的方法,让我们的浏览器能够继续访问网页中的链接, 但上面的方式,碰到需要后退的需求,就出现了问题.

我们假设.
这时候, 用户需要从『C网址』返回到『A网址』, 用户自己本身不知道中间有『B网址』, 的存在, 用户只是希望能够在 goBack 的时候, 能够回到『A网址』
但是看上面结构式是: A网址 -> B网址(重定向到C) -> C网址.

这样可以判断出, 直接调用了 WebView.goBack() 一定会返回到『B网址』, 但是『B网址』网址的功能又是重定向到『C网址』, 所以用户看到一个现象就是, 不能 goBack 了, 每次 goBack, 就又回到『C网址』.

那上面这个问题怎么解决呢?
通过修改,我们上面override的方法.

[代码]java代码:

?

1
2
3
4
5
6
7
webView.setWebViewClient(new WebViewClient(){
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        return false; // doc上的注释为: True if the host application wants to handle the key event itself, otherwise return false(如果程序需要处理,那就返回true,如果不处理,那就返回false)
        // 我们这个地方返回false, 并不处理它,把它交给webView自己处理.
    }
});


这样就可以既实现在当前 WebView 跳转, 又能够在 goBack 时准确返回了.

原文链接:http://www.apkbus.com/blog-705730-62473.html

點擊查看更多內(nèi)容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優(yōu)惠券免費領(lǐng)

立即參與 放棄機會
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報

0/150
提交
取消