안드로이드 환경에서 window.klaytn 객체 확인 불가에 대한 문의

안드로이드 환경에서만 window.klaytn 객체가 undefined로 확인되는 문제로 인해 kaia 지갑 연결이 되지 않는 문제가 있습니다.

  1. 운영 서버 (HTTPS)
  • PC 웹 브라우저 : window.klaytn 객체 정상 확인 및 확장 프로그램 지갑 연동 확인
  • 아이폰 : kaia 지갑 브라우저에서 연동 확인
  • 안드로이드 : 크롬 브라우저와 Kaia 지갑 브라우저 둘 다 window.klaytn 객체 확인되지 않음, 연동 불가능
  1. 로컬 서버 (HTTP)
  • PC 웹 브라우저 : window.klaytn 객체 정상 확인 및 확장 프로그램 지갑 연동 확인
  • 안드로이드 Kaia 지갑 브라우저 : 지갑 연동 정상적으로 진행
  • 안드로이드 크롬 등 브라우저 : window.klaytn 객체 확인되지 않음, 지갑 연동 불가능

위의 문제로 인해 고통받는 중인데, 혹시 관련되서 문제 해결 방안이나 해결 방향을 아시는 분이 있다면 답변해 주시면 정말 감사드리겠습니다. ㅠ_ㅠ

브라우저에서 의존성 을 주입받지 말고 직접 RPC URL 을 사용해서 의존성을 주입하세요!

참고로 모바일 브라우저을 이용해서 지갑과 연결을 하고 싶으면 특정 지갑을 통해서만 가능해요 (ex) walletconnect, metamask, kaia 모바일 브라우저 등등…

일반 브라우저에서는 불가능 합니다

답변 감사드립니다.
제가 사실 web, web3를 전문으로 하던 개발자가 아니라 답변에 대해 정확한 뜻을 이해하지 못해서 다시 답변드리는 점 양해 부탁드립니다 ㅠ
간단하게 기능을 설명드리자면 저희가 호스팅하는 사이트에서 유저의 지갑과 연동하여 퍼블릭 키를 가져오는건데, 안드로이드 모바일 환경에서만 연동이 안되고 있어서 질문을 올린 상황입니다. (kaia 모바일 브라우저를 사용했습니다.)
그런데 동일한 코드로 실제 도메인을 사용해서 호스팅중인 사이트에서는 kaia 모바일 브라우저로 들어가도 연동이 안되는데, PC 로컬 호스팅을 abd로 연결해서 들어간 IP 사이트에서는 연동이 되는 상황이라 이해하기가 어렵네요 ㅠㅠ
어쨌든 window.klaytn을 사용하지 말고, RPC URL을 사용하라는 의미로 해석하면 될까요?

네 보통 metamask 에서도 web 상에서 지갑과 상호작용시 window.ethereum 여기서 의존성을 주입받아 지갑과 상호작용하게 되어있는데요 window.klaytn 도 역시 그런 형식으로 진행이 되는 것 으로 알고 있습니다.

보통 web3js 을 사용을 하면 아래와 같은 형식으로 객체를 주입을 할텐데
web3 = new Web3(window.ethereum);

위의 방식말고 RPC URL 방식으로 변경해서 사용하면 window.klaytn 사용하지 않고 객체를 주입할 수 있으실 겁 니다.
web3 = new Web3(“kaia RPC url…”);