React Native解决WebView高度问题

6 篇文章 0 订阅
3 篇文章 0 订阅
	import { WebView } from 'react-native-webview'
	const [webViewContent, setWebViewContent] = useState(null)
	const [htmlHeight, setHtmlHeight] = useState(0)
	let HTML = `<html><head><meta name="viewport" content="user-scalable=1.0,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0"><style>video{width:100%}</style></head><body>${webViewContent}</body></html>`


							<WebView
							
								source={{ html: HTML }}
								automaticallyAdjustContentInsets={false}
								javaScriptEnabled={true}
								injectedJavaScript={`(function() {
                                  setTimeout(() => {
                                    window.ReactNativeWebView.postMessage(JSON.stringify(document.documentElement.clientHeight));
                                  }, 500)
                                })();`}
								onMessage={(e) => {
									if (e.nativeEvent.data == htmlHeight) return
									setHtmlHeight(e.nativeEvent.data)
								}}
								style={{ height: openDetail ? +htmlHeight : 0, marginTop: pTx(1) }}
							/>

之前遇到的场景是后台只返回了富文本的标签内容,导致加载出来的内容高度不正确,解决方法就是通过document.documentElement.clientHeight获取内容高度,然后返回给Reace native

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值