android webview 显示不出来

1 webview 使用 loadDataWithBaseURL 方法的时候是没有问题,但是在ScrollView下边使用的时候,在小米手机显示不了;

2 在webview 设置固定高度的时候在ScrollView是正常的,但是一般我们并不清楚高度是多少,那么解决的方法是

	   WebSettings ws = reservedView.wv_web.getSettings();
        ws.setAppCacheEnabled(true);//启用localstorage本地存储api
        ws.setLightTouchEnabled(true);//启用选中功能
        ws.setDomStorageEnabled(true);//启用dom存储(关键就是这句),貌似网上twitter显示有问题也是这个属性没有设置的原因
        ws.setDatabaseEnabled(true);//启用html5数据库功能
        ws.setTextSize(WebSettings.TextSize.NORMAL);//通过设置WebSettings,改变HTML中文字的大小 (使用后字体变大)
        ws.setJavaScriptEnabled(true);//设置js可用

        //  WebView中Http和Https混合问题
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            ws.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
        }
        //主要方法
        reservedView.wv_web.setWebViewClient(new WebViewClient() {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                reservedView.wv_web.loadUrl(url);
                return true;
            }

            @Override
            public void onPageFinished(WebView view, String url) {
            //这里必须是这样的
                reservedView.wv_web.loadUrl("javascript:App.resize(document.body.getBoundingClientRect().height)");
                super.onPageFinished(view, url);

            }

            @Override
            public void onPageStarted(WebView view, String url, Bitmap favicon) {
                super.onPageStarted(view, url, favicon);
            }

            @Override
            public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
                super.onReceivedError(view, request, error);
            }
        });
        reservedView.wv_web.addJavascriptInterface(this, "App");

        reservedView.wv_web.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
        reservedView.wv_web.setVerticalScrollBarEnabled(false);
        reservedView.wv_web.setVerticalScrollbarOverlay(false);
        reservedView.wv_web.setHorizontalScrollBarEnabled(false);
        reservedView.wv_web.setHorizontalScrollbarOverlay(false);

重写resize方法

  @JavascriptInterface
    public void resize(final float height) {
         runOnUiThread(new Runnable() {
            @Override
            public void run() {
                int h = (int) (height * getResources().getDisplayMetrics().density);
                reservedView.wv_web.setLayoutParams(new LinearLayout.LayoutParams(getResources().getDisplayMetrics().widthPixels,
                        h+40));
            }
        });
    }

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值