请教一个 WebView 的古怪问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
RuralHunter
V2EX    Android

请教一个 WebView 的古怪问题

  •  
  •   RuralHunter 2023-06-26 20:55:51 +08:00 11460 次点击
    这是一个创建于 840 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我在 Activity 里代码大概如下:

    webview.setWebViewClient(new MyWebViewClient()); webView.loadUrl("https://www.aaa.com"); 

    结果在 WebViewClient.onPageFinished(WebView view, String url)里得到 url 却是"https://www.bbb.com"。这个 aaa 和 bbb 的确是有点关系,是同一个站点的不同域名。我怀疑是不是重定向的问题,但在浏览器里打开 https://www.aaa.com 并没有任何重定向,在手机的 chrome 里打开也一样没有重定向。我在 WebViewClient 的几个相关的方法里分别打印了得到的 url ,按照 log 顺序如下:

    shouldInterceptRequest: https://www.aaa.com shouldOverrideUrlLoading: https://www.bbb.com onLoadResource: https://www.aaa.com onPageStarted: https://www.bbb.com doUpdateVisitedHistory: https://www.bbb.com onPageFinished: https://www.bbb.com 

    这可能是什么原因?为什么这么奇怪?

    12 条回复    2023-07-04 20:54:59 +08:00
    imqiyue
        1
    imqiyue  
       2023-06-26 22:44:15 +08:00
    charles 抓包看下 http 请求是不是走了重定向
    hiro0729
        2
    hiro0729  
       2023-06-26 23:04:11 +08:00
    请求头的 UserAgent 带了 mobile 标识,网站通过判断 UserAgent 重定向到 wap 端了吧
    mxalbert1996
        3
    mxalbert1996  
       2023-06-26 23:41:33 +08:00 via Android
    WebView.setWebContentsDebuggingEnabled(true) 然后在 chrome://inspect 调试一下不就知道了
    zhwanng
        4
    zhwanng  
       2023-06-27 10:08:03 +08:00
    http 301 、302 的问题吧
    zongren
        5
    zongren  
       2023-06-27 16:04:57 +08:00
    就是跳转了吧,有可能 js 调用的
    RuralHunter
        6
    RuralHunter  
    OP
       2023-06-27 22:00:38 +08:00
    @hiro0729 应该不是的,我手机的浏览器肯定带了 mobile 标识了,打开也没有重定向。
    RuralHunter
        7
    RuralHunter  
    OP
       2023-06-27 22:14:47 +08:00
    @mxalbert1996 我的 api 版本可能太低? webview 没有这个 setWebContentsDebuggingEnabled 方法,另外 chrome 也打不开 chrome://inspect
    mxalbert1996
        8
    mxalbert1996  
       2023-06-27 22:31:20 +08:00 via Android
    @RuralHunter
    setWebContentsDebuggingEnabled() API 19 就有了,是个静态方法,你是不是在实例方法里找了?
    chrome://inspect 你是在桌面端打开的么?
    而且我关键词都给你了你搜一下不就知道了。
    https://blog.csdn.net/freak_csh/article/details/95585148
    RuralHunter
        9
    RuralHunter  
    OP
       2023-06-27 22:35:57 +08:00
    setWebContentsDebuggingEnabled 可以了,原来是个静态方法,但是 chrome 还是打不开 chrome://inspect ,显示 invalid url
    RuralHunter
        10
    RuralHunter  
    OP
       2023-06-27 22:38:29 +08:00
    @mxalbert1996 明白了,要 usb 连手机啊,我这个奇怪的问题是在手机上是好的,只有在 android studio 的模拟器里有问题,所以没法用手机测。
    RuralHunter
        11
    RuralHunter  
    OP
       2023-06-27 22:46:02 +08:00
    原来电脑上的 chrome://inspect 打开能看到模拟器,inspect 页面能够看到模拟器里我的 app ,可是点击 inspect 跳出来的 devtools 一直是空白的
    RuralHunter
        12
    RuralHunter  
    OP
       2023-07-04 20:54:59 +08:00
    好不容易发现 inspect 白屏的原因,原来 chrome 需要翻墙才能打开。然而打开 inpect 后发现更怪的问题了,我的 activity 一启动,在 inspect 里的网址栏显示的就是 bbb ,我就在 inspect 的网址栏里输入 aaa ,想看看它怎么重定向到 bbb ,结果根本没有重定向,打开的页面网址显示就是 aaa ,跟其它浏览器正常表现一样。最奇怪的是,从此以后我的 activity 里的 webview 再打开 aaa 也也不会到 bbb 了,log 里面都只显示 aaa ,从此以后就一直是我预期中的 aaa 了,再也没有出现问题,重新运行,不管 debug 或 inspect 开不开,都没有问题,没有 bbb 。为何如此诡异?
    关于     帮助文档     自助推广系统     博客   API     FAQ     Solana     2533 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 15:34 PVG 23:34 LAX 08:34 JFK 11:34
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86