ios – React Native WebView滚动行为无法按预期工作

ios – React Native WebView滚动行为无法按预期工作,第1张

概述我有一个本机应用程序使用React Native WebView来包装网页. <WebView ref={webview => (this.webview = webview)} source={{ uri: `http://localhost:8000` }} /> 在此示例中,页面只是指向具有以下代码的localh 我有一个本机应用程序使用React Native WebView来包装网页.
<WebVIEw        ref={webvIEw => (this.webvIEw = webvIEw)}        source={{          uri: `http://localhost:8000`        }}      />

在此示例中,页面只是指向具有以下代码的localhost实例,该代码在用户滚动时递增数字:

var i = 0;var $el = document.getElementByID('counter')window.addEventListener('scroll',function(e) {  e.preventDefault();  i += 1;  $el.innerText = i});
<!DOCTYPE HTML><HTML lang="en"><head>    <Meta charset="UTF-8">    <Meta name="vIEwport"          content="wIDth=device-wIDth,user-scalable=no,initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0">    <Meta http-equiv="X-UA-Compatible" content="IE=edge">    <Title>document</Title></head><body ><div ID="type"></div><div ID="counter" >0</div></body></HTML>

React Native WebVIEw内部的滚动行为的行为方式与浏览器不同.它会在触发滚动事件之前等待滚动完成.

这是行为的比较;在浏览器中,滚动事件在滚动过程中触发,按照需要和预期方式触发:

在iOS 11中的React Native项目中,滚动事件在滚动完成后触发:

这种行为大概是出于性能原因而使用,但它几乎杀死了我的应用程序的预期行为.

还有其他的工作我没想过吗?

如何确保滚动事件的行为与React Native应用程序中的浏览器相同?

解决方法 我在 MDN scroll event documentation上找到了以下信息.我认为问题与react-native无关.
browser compatibility

iOS UIWebVIEw

In iOS UIWebVIEws,scroll events are not fired while scrolling is taking place; they are only fired after the scrolling has completed. 07001. Safari and WKWebVIEws are not affected by this BUG.

总结

以上是内存溢出为你收集整理的ios – React Native WebView滚动行为无法按预期工作全部内容,希望文章能够帮你解决ios – React Native WebView滚动行为无法按预期工作所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1099383.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存