generateHapticFeedback 안드로이드 햅틱 미발생 문제

이 글의 성격은 무엇인가요?

질문 / 문제 해결

내용을 설명해주세요

요약

동일한 번들 · 동일한 호출 코드로 iOS에서는 햅틱이 정상 동작하고, 안드로이드에서는 진동이 전혀 발생하지 않습니다.

환경

항목
미니앱 종류 웹 미니앱 (React Native 아님)
SDK @apps-in-toss/web-framework@3.0.1
빌드 vite 6.4.3, CSR, webBundleDir: "dist"
appName glancebaseball
permissions [] (빈 배열)
기기 Samsung Galaxy SM-S948N, Android 16 (API 36)
토스 앱 5.270.1
실행 경로 라이브 미니앱 (intoss://glancebaseball)

기기 설정도 확인했습니다.

  • settings get system haptic_feedback_enabled1 (터치 피드백 켜짐)
  • settings get global zen_mode0 (방해금지 꺼짐)
  • cmd vibrator_manager synced oneshot 250 → 정상 동작 (하드웨어 이상 없음)

호출 코드

가이드에 안내받은 형태 그대로입니다.

generateHapticFeedback({ type: ‘tickMedium’ });

증상

generateHapticFeedback 이 reject 하지 않고 정상 resolve 하는데 진동이 발생하지 않습니다.

타입을 바꿔 순차로 시도해도 전부 같습니다 — 모두 resolve, 모두 무반응입니다.

  • tickWeak
  • tickMedium
  • basicMedium
  • success

확인한 것들

  1. 브리지 자체는 살아 있습니다
    같은 미니앱에서 아래는 정상 값을 반환합니다.
  • getPlatformOS() → android
  • getTossAppVersion() → 5.270.1
  1. Device.triggerHaptic 과 동일한 함수입니다
    런타임에서 확인했습니다.
    generateHapticFeedback === Device.triggerHaptic // → true
    // 양쪽 모두: (options) => callAsyncMethod(“generateHapticFeedback”, options)
    빌드 산출물에서도 같은 브리지로 들어가는 것을 확인했습니다. 따라서 Device.triggerHaptic
    으로 바꿔도 동작이 동일합니다.

  2. 웹 Vibration API 도 무반응입니다
    navigator.vibrate 가 존재하고 false 도 반환하지 않는데, 300ms 를 발사해도 울리지 않습니다

질문

  1. 안드로이드 웹뷰에서 SDK 햅틱과 navigator.vibrate 가 모두 무반응인 점으로 보아 웹뷰의 오디오/진동 세션 설정 문제로 보입니다. 대응 방법이 있을까요?

  2. resolve 가 실제 진동을 보장하지 않는데, 지원 여부를 판별할 방법이 있을까요?

appName (선택)

glancebaseball

체험 앱에서도 동일한 문제가 발생하는 것 같습니다.

https://developers-apps-in-toss.toss.im/bedrock/reference/framework/인터렉션/interaction.html#예제-앱-체험하기

안녕하세요 :slight_smile:
확인해보겠습니다!

안드로이드에서 테스트해보니 정상적으로 진동이 오는 것으로 확인하였습니다.
웹 api 도 따로 막고 있지 않아서 기기 설정에 문제가 있는지 한번 확인 부탁드려도될까요 ?

환경에서 샘플앱을 실행 했을 때는 반응이 없었는데 지금도 혹시 최신 안드로이드 기기에서 문제가 아닐까요?

제 기기가 문제인가 싶어서 혹시 테스트해보신 기기 스펙을 알려주실 수 있을까요?

Android 24 에서 테스트 시 정상이었습니다.

갤럭시 S24를 말씀하시는건가요? 아래 링크를 드린 글도 같은 현상이 발생하는거 같은데 최신기기 테스트도 한 번 부탁드리겠습니다 친절한 답변 감사합니다!!

헛 맞아요 갤럭시 s24에서는 잘되더라구요
Z 폴드6로 테스트를 해보겠습니다.

내부 테스트 결과 정상 작동 확인했습니다.
저희 앱 내 설정 > 진동 메뉴에서 진동 끄기로 설정되어 있으면, 미니앱 브릿지 호출해도 햅틱미반응으로 나타날 수 있어요..!
설정 확인 부탁드립니다.

앱내 설정 문제였네요(정확히는 시스템 설정 따라가기 였습니다) 해결이 되었습니다 감사합니다!!! 억지로 진동을 킬 수는 없겠네요..!

가이드에 추가해두겠습니다.
감사합니다.