前提
AndroidStudioを使用しアプリ開発を行っており
webView画面を左右にフリックした際に戻る、進む処理が行われるようにしました。
発生している問題
web側でフリック操作が既にある箇所が処理が重複している状態。
既にフリック操作がある箇所は戻る、進む処理を無効にしたい
実現したいこと
web側でclassを追加し、そのclassを元に条件分岐をかけてフリック処理を一部無効にしたいです。
該当のソースコード(MyWebView.java)
@Override public boolean onTouchEvent(MotionEvent event) { return (mGestureDetector.onTouchEvent(event) | super.onTouchEvent(event)); } private final GestureDetector.SimpleOnGestureListener mSimpleOnGestureListener = new GestureDetector.SimpleOnGestureListener() { @Override public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) { try { if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH) { // 縦の移動距離が大きすぎる場合は無視 return super.onScroll(e1, e2, distanceX, distanceY); } if (e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE) { // 開始位置から終了位置の移動距離が指定値より大きい // X軸の移動速度が指定値より大きい goForward();//進む } else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE) { // 終了位置から開始位置の移動距離が指定値より大きい // X軸の移動速度が指定値より大きい goBack();//戻る } } catch (Exception e) { // nothing } return super.onScroll(e1, e2, distanceX, distanceY); } };
試したこと
下記記事を参考にJSを書こうとしたのですが書き方がわかりませんでした。
https://teratail.com/questions/36640
補足情報
できるだけweb側の修正が入らないようにしたいです。
あなたの回答
tips
プレビュー