[From. Whale] 닉네임, 그리고 폰에서 사라지는 소리
공개하자마자 폰에서 문제가 쏟아졌습니다. 첫날 오후는 거의 모바일 버그 잡기였습니다.
닉네임
- 첫 화면과 일시정지 메뉴에 닉네임 칸 추가 (비우면 ‘헤이즐’)
- 대본에
{N},{N은},{N을}자리표시를 두고, 이름 마지막 글자 받침을 보고 조사를 고릅니다. ‘민트는’, ‘헤이즐은’처럼요. - 닉네임을 입력하는 동안에는 게임 키가 눌리지 않게 했습니다.
확대되는 화면
iOS Safari는 user-scalable=no를 무시합니다. 그래서 두 번 탭하면 게임이 확대되고 그대로 굳어 버렸습니다. 빠른 두 번째 탭, 핀치, gesture 이벤트를 막고, touch-action을 버튼마다 따로 걸었습니다(상속이 안 됩니다).
잠금 화면 뒤에 사라지는 소리
가장 골치 아팠던 문제입니다. iOS에서 잠금 화면을 갔다 오면 AudioContext가 running이라고 말하면서 소리는 안 납니다. resume만으로는 안 돼서,
- 화면이 가려지면 오디오 엔진을 ‘낡음’으로 표시하고
- 돌아와서 처음 탭하거나 키를 누를 때 엔진을 처음부터 다시 만듭니다 (마디 위치와 악기 구성은 유지)
- 대화창처럼 이벤트 전파를 막는 곳의 탭도 잡히도록 capture 단계에서 듣습니다.
- iOS에서는 ‘한 번 탭해 주세요’ 안내를 띄웁니다.