jhlee21
jhlee212mo ago

flutter inappwebview 앱링크 미동작

안녕하세요 php 웹사이트를 운영중에 있습니다. kb pay 등 외부앱링크 및 마켓으로 이동되지 않아서 않아서 문의드립니다. flutter inappwebview 에서 widget : InAppWebView( shouldOverrideUrlLoading: (controller, navigationAction) async { final url = navigationAction.request.url.toString(); debugPrint('url : $url', ); final appScheme = ConvertUrl(url); debugPrint('appScheme.isAppLink() : ${appScheme.isAppLink()}'); if (appScheme.isAppLink()) { await controller.stopLoading(); debugPrint('appScheme.appScheme : ${appScheme.appScheme}'); debugPrint('appScheme.url : ${appScheme.url}'); debugPrint('appScheme.appLink : ${appScheme.appLink}'); debugPrint('appScheme.package : ${appScheme.package}'); debugPrint('await appScheme.getMarketUrl() : ${await appScheme.getMarketUrl()}'); debugPrint('await appScheme.getAppLink() : ${await appScheme.getAppLink()}'); final uri = Uri.parse(appScheme.url); debugPrint('uri : $uri'); appScheme.launchApp(); return NavigationActionPolicy.CANCEL; } return NavigationActionPolicy.ALLOW; } 로그 내용: I/flutter (11708): url : kb-acp://pay?srCode=#######&tcodeSeq=########## I/flutter (11708): appScheme.isAppLink() : true I/flutter (11708): ConvertUrl I/flutter (11708): appScheme.appScheme : kb-acp I/flutter (11708): appScheme.url : kb-acp://pay?srCode=#######&tcodeSeq=########## I/flutter (11708): appScheme.appLink : kb-acp://pay?srCode=#######&tcodeSeq=########## I/flutter (11708): appScheme.package : null I/flutter (11708): Null check operator used on a null value I/flutter (11708): #0 ConvertUrl.getMarketUrl (package:tosspayments_widget_sdk_flutter/model/tosspayments_url.dart:69:44) 이슈: appScheme.package가 null인 상태인데, 어떻게 해야 하나요? flutter inappwebview로 적용된 샘플이 있을까요? 외부앱들을 오픈할 수 있도록 어떻게 변경해야하는지 문의드립니다.
16 Replies
토스페이먼츠 BOT
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) : - 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요. * 주말/공휴일에는 답변이 늦을 수 있어요.
이실장
이실장2mo ago
GitHub
GitHub - youjun-lee/flutter_webview_sample_app: flutter webview sample
flutter webview sample. Contribute to youjun-lee/flutter_webview_sample_app development by creating an account on GitHub.
이실장
이실장2mo ago
웹뷰(WebView) 연동하기 | 토스페이먼츠 개발자센터
모바일에서 결제창을 띄울 때 카드사별 결제수단을 인증하려면 외부 앱(3rd-party 앱)을 연동해야 합니다. 연동에 필요한 외부 앱 스킴(App URL Scheme)목록과 추가 로직을 살펴보세요.
이실장
이실장2mo ago
2개 참고바랍니다.
jhlee21
jhlee212mo ago
답변 감사합니다. https://github.com/youjun-lee/flutter_webview_sample_app 의 inappwebview 부분을 적용하였으나, 똑같이 package 가 null로 표시되고 있습니다. 혹시 어떻게 변경해야 할까요?
GitHub
GitHub - youjun-lee/flutter_webview_sample_app: flutter webview sample
flutter webview sample. Contribute to youjun-lee/flutter_webview_sample_app development by creating an account on GitHub.
이실장
이실장2mo ago
package가 null료 표기되는거 무슨말씀이신가요 ㅇㅏ이폰에서만 발생하나요?
jhlee21
jhlee212mo ago
아이폰은 현재 개발을 하지않고 있습니다. appScheme.package가 null이어서 마켓 또는 앱오픈이 되지 않고있습니다.(현재 디바이스에 kb-pay는 설치되어있지 않습니다.)
No description
No description
이실장
이실장2mo ago
kb pay외에는 이상없난요? kbpay intenturl이 패키지name정보를 안포함하고 있는 것 같네요
jhlee21
jhlee212mo ago
혹시나 해서 그런데 디바이스는 wifi로만 통신하고있습니다. 하나Pay(앱 설치 안되어있음)도 appScheme.package가 null이여서 동작하지 않습니다. 신한Sol(앱 설치되어있음)의 경우에는 "통신요청암호화(RSA)에 실패했습니다" 라고 뜹니다.
이실장
이실장2mo ago
wifi가 사내망인가요?
jhlee21
jhlee212mo ago
일단 해당 소스코드로 했을시에 앱이 설치되어있고, wifi만 되는 디바이스로 하지 않으니 정상 동작 합니다.(kb-pay 등 몇 몇 앱에서 wifi만 되는 기종이면 튕겨내서 연결이 안되었던것 같습니다.) 그리고 usb 디버깅 상태로 하니 안되었던 문제도 있었던것 같습니다.(릴리즈 모드로 하니 동작을 하고, 유심있는? 기기로 하니 "usb 디버깅하지말고 앱을 열어달라"고 메시지가 노출되었습니다. wifi만 되는 기기로 하니 kb-pay앱도 열리지 않았어서 "usb 디버깅하지말고 앱을 열어달라"는 메시지가 보이지 않아서 원인을 찾는데 시간이 걸렸습니다.) 일단 문제가 해결된것 같은데, appScheme.package가 null이 아니려면 패키지 버전이 다른것을 사용해야하나요? 아니면 모든 앱들(kb인 경우 4개 - kb-acp://, liivbank:/, newliiv://, kbbank://)의 packageName을 전부 찾아서 저희가 직접 작성해야하나요?
이실장
이실장2mo ago
네 국민은 usb디버깅 모드로 안되요 문제 해결된걸로 보이시는데 마지막 문의는 어떤내용일까요?
jhlee21
jhlee212mo ago
intenturl에 package 가 포함되어있지 않아서 getMarketUrl이 동작하지 않는 상태여서요, tosspayments_widget_sdk_flutter의 다른버전을 봐야하는건지 아니면 이쪽은 저희가 알아서 하면 되는 부분인지 질문드립니다!
No description
이실장
이실장2mo ago
intenturl에 package 가 포함되어있지 않아있으면 대응이 어렵네요. 이럴 경우 별도로 조치해주셔야할 것 같습니다.
jhlee21
jhlee212mo ago
넵. 친절하게 답변해주셔서 감사합니다.
토스페이먼츠 BOT
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.