Search code examples
nativescriptnativescript-telerik-ui

How to disable scroll in Webview?


Is there a way i can disable scroll in webview?

For instance

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

Please find the native script playground link attached:

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


Solution

  • You can disable the scroll by accessnig the native WebView and apoplying a native solution (direct access to the native APIs is one of the greatest advantages of nativeScript as this allows you to work with native solutions)

    Example for Android XML

    <WebView loaded="onWebViewLoaded" src="https://www.npmjs.com/package/nativescript-openurl" height="300" ></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;
    

    Playground demo can be found here