web View底部添加原生界面

2023-04-27  本文已影响0人  陽光亽活力
在ScrollView嵌套WebVIew,WebView超过一屏幕,并且在底部添加原生的分享,或者点赞功能。
image.png
一、在OnCreateView中初始化
  webView.addJavascriptInterface(this, "App");
二、在onProgressChanged中添加 javascript
    @Override
    public void onProgressChanged(WebView view, int newProgress) {
        ViseLog.d("onProgressChanged:" + view.getUrl());
        //当进度执行到80的时候就开始执行onPageFinished获取高度为0
        if (newProgress >= 99) {
            webView.loadUrl("javascript:App.resize(document.body.getBoundingClientRect().height)");
            getBinding().scrollView.scrollTo(0, 0);
        }
    
三、接收回调
    @JavascriptInterface
    public void resize(final float height) {
        ViseLog.d("+++height:" + height);
        requireActivity().runOnUiThread(() -> {
            int height1 = (int) ((height + 50) * getResources().getDisplayMetrics().density);
            webView.setLayoutParams(new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, height1));
        });
    }
上一篇 下一篇

猜你喜欢

热点阅读