我使用Webview将一些内容呈现给视图,使用脚本计算内容的高度以获取内容的高度,span标记包含内容。
<html id="htmlContent">
<body>
<span>
...
//content
...
</span>
<script>
document.addEventListener('DOMContentLoaded', function () {
document.title = document.getElementById('htmlContent').offsetHeight;
window.location.hash = 1;
});
</script>
</body>
</html>
这是webview组件:
const commonHtmlStyle= `font-weight:300; font-family:sans-serif; font-size: 18px; color:rgb(136,136,136); backgroundColor:rgba(0,0,0,0);`;
<WebView style={{ height: this.state.height }}
ref={(ref) => { this.webview = ref; }}
automaticallyAdjustContentInsets={true}
scrollEnabled={false}
javaScriptEnabled={true}
source={{ html: voca.sprintf(commonHtml, commonHtmlStyle, this.state.content) }}
onNavigationStateChange={this.setState({
height: parseInt(navState.title)
})}
/>
结果, 我在Android中运行时看到空格(脚本返回appox高度的两倍) iOS上的剪辑内容(返回高度小于内容高度)。
我尝试使用其他autoHeight webview组件,如(react-native-webview-autoheight)但仍显示iOS和Android几乎相同的结果。
我试图解决这个问题,但是无法解决这个问题。任何帮助将不胜感激。