如何在 Webview 中禁用滚动?

Posted

技术标签:

【中文标题】如何在 Webview 中禁用滚动?【英文标题】:How to disable scroll in Webview? 【发布时间】:2019-02-12 17:45:27 【问题描述】:

有没有办法可以在 webview 中禁用滚动?

例如

<WebView rc="https://www.npmjs.com/package/nativescript- 
openurl"  tap="ontapvw"  ></WebView>

请找到随附的本机脚本游乐场链接:

https://play.nativescript.org/?template=play-js&id=hh7ITB&v=2

【问题讨论】:

其他用户将您的问题标记为低质量和需要改进。我重新措辞/格式化您的输入,使其更容易阅读/理解。请查看我的更改以确保它们反映您的意图。但我认为你的问题仍然无法回答。 现在应该edit你的问题,添加缺失的细节(见minimal reproducible example)。如果您对我有其他问题或反馈,请随时给我留言。 链接到外部站点以获取更多信息不是一个好方法。请尝试在您的问题中提供所有相关信息。 您好,感谢您的帮助,会调查的,谢谢 请注意:放弃一个问题然后走开也是非常糟糕的做法。人们给你反馈,你应该在附近做出反应。 【参考方案1】:

您可以通过访问本机 WebView 并应用本机解决方案来禁用滚动(直接访问本机 API 是 nativeScript 的最大优势之一,因为这允许您使用本机解决方案)

android 示例 XML

<WebView loaded="onWebViewLoaded" src="https://www.npmjs.com/package/nativescript-openurl"  ></WebView>

javascript

function onWebViewLoaded(args) 
  let wv = args.object;
  console.log(wv);

  if(isAndroid) 
      let webViewAndroid = wv.nativeView;
      console.log(webViewAndroid);

      // Hide the scrollbars, but not disable scrolling:
      webViewAndroid.setVerticalScrollBarEnabled(false);
      webViewAndroid.setHorizontalScrollBarEnabled(false);

      // Disable scrolling
      let myListener = new android.view.View.OnTouchListener(
        onTouch: function (view, event) 
          return (event.getAction() == android.view.MotionEvent.ACTION_MOVE);
        
      )

      webViewAndroid.setOnTouchListener(myListener);
  


exports.onWebViewLoaded = onWebViewLoaded;

游乐场演示可以找到here

【讨论】:

您需要先通过操作系统检查来解决此问题,然后再在 ios 上执行适当的操作。 嗨尼克,感谢代码运行良好.. 为延迟响应道歉

以上是关于如何在 Webview 中禁用滚动?的主要内容,如果未能解决你的问题,请参考以下文章

在颤动的webview中禁用水平滚动

WebView 如何锁定水平滚动?

如何防止在PhoneGap中双击移动滚动?

禁用滚动 UIPageViewController

如何在 WebView [React-Native] 中禁用用户文本选择

如何在WebView中禁用用户文本选择[React-Native]