获取WebView加载网页后的cookies

有时候我们用 WebView 去加载网页并进行登录后,需要在其他activity或service中使用WebView登录后 的cookies以避免再次登录,比如去下载该网页上的一些附件。这时我们可以在 WebViewClient 的 onPageFinished(WebView view, String url) 方法中使用 CookieManager 来获取加载完成之后网页中携带的 Cookie 值,代码如下:

复制代码
private class MyWebViewClient extends WebViewClient {

        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            webview.loadUrl(url);
            return true;
        }

        public void onPageFinished(WebView view, String url) {
            CookieManager cookieManager = CookieManager.getInstance();
            String Cookie = cookieManager.getCookie(url);           
            super.onPageFinished(view, url);
        }

    }
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
获取 `webview_flutter` 加载完成后网页的高度,可以使用 `WebViewController` 和 `JavascriptChannel`。 首先,创建一个 `JavascriptChannel`,用于将网页高度传递给 Flutter 端: ```dart class HeightChannel { final Function(double) onReceiveHeight; HeightChannel(this.onReceiveHeight); void receiveHeight(String height) { double parsedHeight = double.tryParse(height); if (parsedHeight != null) { onReceiveHeight(parsedHeight); } } } ``` 然后,创建一个 `WebViewController`,并在 `WebView` 中使用它: ```dart WebViewController _controller; double _webViewHeight = 0.0; @override Widget build(BuildContext context) { return WebView( initialUrl: 'https://www.example.com', javascriptMode: JavascriptMode.unrestricted, onWebViewCreated: (controller) { _controller = controller; _controller.addJavascriptChannel( name: 'heightChannel', onMessageReceived: (message) { HeightChannel((height) { setState(() { _webViewHeight = height; }); }).receiveHeight(message); }); }, onPageFinished: (url) { _controller.evaluateJavascript(''' heightChannel.postMessage(document.documentElement.scrollHeight.toString()); '''); }, ); } ``` 在上述代码中,`onWebViewCreated` 方法中创建了一个名为 `heightChannel` 的 `JavascriptChannel`,并在 `onPageFinished` 方法中使用 `evaluateJavascript` 方法向网页发送消息,获取网页的高度。当网页发送高度信息时,`onMessageReceived` 回调会被触发,将高度传递给 `HeightChannel`,并在 Flutter 端更新 `_webViewHeight` 的值。 最后,你可以使用 `_webViewHeight` 属性来显示网页的高度,例如: ```dart Text('Webview height: $_webViewHeight') ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值