johyunchol / kakao_map_plugin

MIT License
31 stars 21 forks source link

지도에서 현재 zoom level 가져올떄 오류가 발생합니다. #11

Closed ilgwon-dd closed 1 year ago

ilgwon-dd commented 1 year ago

안녕하세요 지도에서 현재 zoom level 을 가져오려고 하는데 다음과 같은 오류가 발생합니다.

E/flutter (22385): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: type 'int' is not a subtype of type 'String' in type cast E/flutter (22385): #0 KakaoMapController.getLevel (package:kakao_map_plugin/src/basic/kakao_map_controller.dart:152:88)

/// get zoom level Future getLevel() async { final level = await _webViewController.runJavaScriptReturningResult("getLevel();") as String; return int.parse(level); }

johyunchol commented 1 year ago

안녕하세요!

답변이 늦었습니다. 혹시 어떤 작업을 하다가 해당 에러가 발생하실까요? 이게 자주 발생하는 에러 인지, 아니면 간헐적으로 발생하는 에러 인지 확인 가능하실까요?

ilgwon-dd commented 1 year ago

카카오 지도에서 getLevel() 함수를 호출할때 해당 에러가 발생합니다.

johyunchol commented 1 year ago

혹시 가능하다면 getLevel() 함수를 호출했던 코드를 전달해 주실 수 있으실가요?

해당 함수 호출 말고 적어도 하나의 위젯단위로 코드를 공유해주실 수 있으시면 원인을 찾는데 도움이 될거 같습니다.

ilgwon-dd commented 1 year ago

GestureDetector( onTap: () async { ///
context.read().setMapCenterAndLevel( await _mapController!.getCenter(), await _mapController!.getLevel()); ///

          if (!mounted) {
            return;
          }
          Navigator.of(context, rootNavigator: true)
              .push(
            MaterialPageRoute(
              builder: (context) => SearchPlaceScreen(),
            ),
          )
              .then((value) {
            if (value != null && (value as bool)) {
              setMarker();
            }
          });
        },

....

코드 첨부합니다.

johyunchol commented 1 year ago

확인 해 보니 zoom level 등 int 로 받아온 값들을 String 으로 파싱하는데 발생한 문제 였네요.

이 문제 해결 하고 나서 공유 드리도록 하겠습니다!

johyunchol commented 1 year ago

webview 패키지가 특정 버전 이상에서 위와 같은 현상이 있는거 같습니다.

해결 후 0.2.0 버전 배포하였으니 사용하시면 될거 같습니다!

ilgwon-dd commented 1 year ago

감사합니다!

johyunchol commented 1 year ago

해당 이슈는 close 하도록 할게요!