在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));
});
}
网友评论