はじめに
今回はgree/unity-webview
でバウンススクロールを無効化する方法を紹介したいと思います。
ちなみに基本的な使い方は前に記事を書いたので、気になる方はチェックしてみてください。
www.hanachiru-blog.com
バウンスをオフにする
バウンスをオフにするにはWebViewObject.SetScrollBounceEnabled
を用います。
private void Start() { var webViewObject = new GameObject("WebViewObject").AddComponent<WebViewObject>(); // 初期化 webViewObject.Init( // NOTE: iOSでUIWebViewではなくWKWebViewを利用する(現在はほぼ必須な設定項目だと思ってもらえれば) enableWKWebView: true ); // **バウンスをオフにする** webViewObject.SetScrollBounceEnabled(false); // URLを読み込みWebViewを表示する webViewObject.SetVisibility(true); webViewObject.LoadURL("https://www.google.co.jp/"); }
仕組み
前提ですがiOS
以外はバウンスしないので、サポートされてません。
github.com
内部実装的には、WKWebView.scrollView.bounces
に対して設定を行っているだけです。
- (void)setScrollBounce:(BOOL)enable { WKWebView *webView = (WKWebView *)self; webView.scrollView.bounces = enable; }
一応ScrollView
にはbouncesHorizontally
やbouncesVertically
といった水平・垂直のバウンスを別々に設定できるのですが、gree/unity-webview
は対応してないっぽいです。(PR送っても悪くはなさそうだが、そこまで個人的に必要なさそうですし様子見)
サイドバーをなくす
ちなみにサイドバーを消すこともできます。WebViewObject.SetScrollbarsVisibility
を用いて実現します。
private void Start() { var webViewObject = new GameObject("WebViewObject").AddComponent<WebViewObject>(); // 初期化 webViewObject.Init( // NOTE: iOSでUIWebViewではなくWKWebViewを利用する(現在はほぼ必須な設定項目だと思ってもらえれば) enableWKWebView: true ); // **スクロールバーの表示をなくす** webViewObject.SetScrollbarsVisibility(false); // URLを読み込みWebViewを表示する webViewObject.SetVisibility(true); webViewObject.LoadURL("https://www.google.co.jp/"); }
仕組み
こちらの場合はiOS
・Android
に対応しています。
github.com
内部実装的にはwebView.scrollView.showsHorizontalScrollIndicator/showsVerticalScrollIndicator
に対して設定しているだけです。
- (void)setScrollbarsVisibility:(BOOL)visibility { WKWebView *webView = (WKWebView *)self; webView.scrollView.showsHorizontalScrollIndicator = visibility; webView.scrollView.showsVerticalScrollIndicator = visibility; }