iamport_flutter icon indicating copy to clipboard operation
iamport_flutter copied to clipboard

안드로이드 에뮬레이터에서 iamport_webview_flutter 관련 오류로 실행이 되지 않습니다.

Open choyi918 opened this issue 1 year ago • 3 comments

0.10.0 이상부터는 flutter_webview를 사용하지 않는다는 것을 보고 최신 버전(0.10.1+4)로 업그레이드 했음에도 안드로이드 에뮬레이터에서 어플 빌드 시 다음과 같은 오류가 계속 발생해 실행되지 않습니다. (ios 에뮬레이터에서는 정상 작동합니다. ) 해결할 만한 단서가 있을까요?

/Users/young-in/Library/flutter/.pub-cache/hosted/pub.dartlang.org/iamport_webview_flutter-3.0.4/android/src/main/java/kr/iamport/iamport_webview_flutter/FlutterCookieManager.java:52: warning: [deprecation] removeAllCookie() in CookieManager has been deprecated cookieManager.removeAllCookie(); ^ /Users/young-in/Library/flutter/.pub-cache/hosted/pub.dartlang.org/iamport_webview_flutter-3.0.4/android/src/main/java/kr/iamport/iamport_webview_flutter/FlutterWebViewClient.java:218: warning: [deprecation] onReceivedError(WebView,int,String,String) in WebViewClient has been deprecated public void onReceivedError( ^ /Users/young-in/Library/flutter/.pub-cache/hosted/pub.dartlang.org/iamport_webview_flutter-3.0.4/android/src/main/java/kr/iamport/iamport_webview_flutter/FlutterWebViewClient.java:240: warning: [deprecation] shouldOverrideUrlLoading(WebView,String) in WebViewClient has been deprecated public boolean shouldOverrideUrlLoading(WebView view, String url) { ^ /Users/young-in/Library/flutter/.pub-cache/hosted/pub.dartlang.org/iamport_webview_flutter-3.0.4/android/src/main/java/kr/iamport/iamport_webview_flutter/FlutterWebViewClient.java:266: warning: [deprecation] onReceivedError(WebView,int,String,String) in WebViewClient has been deprecated public void onReceivedError( ^ /Users/young-in/Library/flutter/.pub-cache/hosted/pub.dartlang.org/iamport_webview_flutter-3.0.4/android/src/main/java/kr/iamport/iamport_webview_flutter/FlutterWebView.java:61: warning: [deprecation] shouldOverrideUrlLoading(WebView,String) in WebViewClient has been deprecated public boolean shouldOverrideUrlLoading(WebView view, String url) { ^ 5 warnings /Users/young-in/Library/flutter/.pub-cache/hosted/pub.dartlang.org/uni_links-0.5.1/android/src/main/java/name/avioli/unilinks/UniLinksPlugin.java:84: warning: [deprecation] Registrar in PluginRegistry has been deprecated public static void registerWith(@NonNull PluginRegistry.Registrar registrar) { ^ 1 warning

choyi918 avatar Sep 21 '22 13:09 choyi918

warning 만으로는 빌드가 안되지는 않을 것 같은데 기존 버전에서 업그레이드를 진행했던 것이라면 clean 등을 통해 캐시를 제거해보셨나요?

anymate98 avatar Sep 22 '22 08:09 anymate98

먼가 꼬인 것 같아서 안드로이드 폴더를 아예 싹지우고 flutter create -a 명령어로 다시 안드로이드 폴더를 만들어 처음부터 다시 셋팅했더니 해결 되었습니다. 감사합니다.

choyi918 avatar Sep 25 '22 14:09 choyi918

안녕하세요. 고생이 많으십니다. 이번에는 다른 문제로 문의 드립니다.

PG 결제 테스트 연동은 완료했고, KG 이니시스로 본인 인증을 연동 중인데, 올려주신 예제를 참고하여 IamportCertification에 data를 넘겨주면 다음과 같은 예외 및 오류가 발생합니다.(유저코드(스토어아이디)와 개인정보는 로그에서 가렸습니다.) 일단 제가 사용하고 있는 프레임워크 및 라이브러리의 버전은 다음과 같습니다.

  1. 플러터 sdk 버전은 ">=2.12.0 <3.0.0" 이고,
  2. 아임포트 패키지 버전은 ^0.10.0
  3. 아임포트 관련해서 사용하는 건 아니고, 어플 내 다른 기능에 사용하고 있는 웹뷰 라이브러리가 두 개 있습니다. 혹시 이것과 충돌 가능성이 있는지 생각되어 사용하고 있는 웹뷰 라이브러리 버전도 알려드립니다.
  • webview_flutter: ^3.0.4
  • flutter_inappwebview: ^5.4.3+7

예외 및 오류 로그는 다음과 같습니다.

[VERBOSE-2:dart_vm_initializer.cc(41)] Unhandled Exception: PlatformException(evaluateJavaScript_failed, Failed evaluating JavaScript, JavaScript string was: ' IMP.init("imp0000000"); IMP.certification.dart({"merchant_uid":"mid_1664241914369","company":"아임포트","carrier":"SKT","name":"홍길동","phone":"01012345678","min_age":19,"m_redirect_url":"http://www.xxxxx.com"}, function(response) { const query = []; Object.keys(response).forEach(function(key) { query.push(key + "=" + response[key]); }); location.href = "http://www.xxxxx.com" + "?" + query.join("&"); }); ' Error Domain=WKErrorDomain Code=4 "A JavaScript exception occurred" UserInfo={WKJavaScriptExceptionLineNumber=2, WKJavaScriptExceptionMessage=TypeError: undefined is not a function (near '...IMP.certification.dart...'), WKJavaScriptExceptionColumnNumber=35, WKJavaScriptExceptionSourceURL=data:text/html,%20%20%20<…>

choyi918 avatar Sep 27 '22 01:09 choyi918