【问题标题】:Android Webview onLoad returns wrong heightAndroid Webview onLoad 返回错误的高度
【发布时间】:2015-02-09 06:56:00
【问题描述】:

我正在将一个 file:// url 加载到 webview 中。由于我的 webview 需要展开/折叠,所以我没有使用 WRAP_CONTENT,而是在 android 中计算 javascript onPageFinished 事件中的高度。但是每 2 次 5 次,javascript 报告一个错误的高度。对于某些手机,它返回更大的高度,而对于较旧的低分辨率手机,它返回的高度小于容器。

我尝试过使用 window.onload。只是为了在前面保持理智,我必须在 1500 毫秒后执行 setTimeout() 来重新计算高度并调整 webview 容器的大小。

我缺少什么吗?如何着手修复它?

【问题讨论】:

    标签: javascript android webview


    【解决方案1】:

    尽量依赖Android的WebView,而不是HTML Window里面

    Html 窗口(在 JavaScript 运行时执行时)为 320x240 或正确大小

    如果您无法直接访问您的 WebView 大小,请推迟相关 JavaScript 直到 HTML 窗口调整大小

    使用 HTML Window 加载 SDK 视频覆盖的示例代码

    if (!isAndroid() || isAndroidAndResized()) {
        this.translateRelativePosition(params);
        loadVideo(params.id, params.url, params);
    } else {
        var relativePosition = {left: params.left, top: params.top};
        var offScreenPosition = {
            left: params.left - params.width - 2000,
            top: params.top - params.height - 2000
        }; // preload video without showing splash overlay at (0, 0)
    
        params.left = offScreenPosition.left;
        params.top = offScreenPosition.top;
        loadVideo(params.id, params.url, params);
    
        var positionCachedVideo = function () {
            if (isAndroidAndResized() || Ad.width === 320 && Ad.height === 240) {
                params.left = relativePosition.left;
                params.top = relativePosition.top;
                this.translateRelativePosition(params); // use container absolute position + video relative position (for device overlay)
                playVideo(params.id, params);
            } // make sure WebView is not 320x240 unless Ad size is 320x240
        }.bind(this);
    
        if (this.getWidth() !== 320 || this.getHeight() !== 240) {
            targetHtmlWindow.addEventListener('resize', positionCachedVideo);
        } else {
            setTimeout(positionCachedVideo, 50);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-26
      • 1970-01-01
      • 2013-02-17
      • 1970-01-01
      • 2012-08-31
      • 1970-01-01
      • 1970-01-01
      • 2015-02-17
      相关资源
      最近更新 更多