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
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) :
- 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요.
* 주말/공휴일에는 답변이 늦을 수 있어요.
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.
웹뷰(WebView) 연동하기 | 토스페이먼츠 개발자센터
모바일에서 결제창을 띄울 때 카드사별 결제수단을 인증하려면 외부 앱(3rd-party 앱)을 연동해야 합니다. 연동에 필요한 외부 앱 스킴(App URL Scheme)목록과 추가 로직을 살펴보세요.
2개 참고바랍니다.
답변 감사합니다.
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.
package가 null료 표기되는거
무슨말씀이신가요
ㅇㅏ이폰에서만 발생하나요?
아이폰은 현재 개발을 하지않고 있습니다.
appScheme.package가 null이어서 마켓 또는 앱오픈이 되지 않고있습니다.(현재 디바이스에 kb-pay는 설치되어있지 않습니다.)
kb pay외에는 이상없난요?
kbpay intenturl이 패키지name정보를 안포함하고 있는 것 같네요
혹시나 해서 그런데 디바이스는 wifi로만 통신하고있습니다.
하나Pay(앱 설치 안되어있음)도 appScheme.package가 null이여서 동작하지 않습니다.
신한Sol(앱 설치되어있음)의 경우에는 "통신요청암호화(RSA)에 실패했습니다" 라고 뜹니다.
wifi가 사내망인가요?
일단 해당 소스코드로 했을시에 앱이 설치되어있고, wifi만 되는 디바이스로 하지 않으니 정상 동작 합니다.(kb-pay 등 몇 몇 앱에서 wifi만 되는 기종이면 튕겨내서 연결이 안되었던것 같습니다.)
그리고 usb 디버깅 상태로 하니 안되었던 문제도 있었던것 같습니다.(릴리즈 모드로 하니 동작을 하고, 유심있는? 기기로 하니 "usb 디버깅하지말고 앱을 열어달라"고 메시지가 노출되었습니다. wifi만 되는 기기로 하니 kb-pay앱도 열리지 않았어서 "usb 디버깅하지말고 앱을 열어달라"는 메시지가 보이지 않아서 원인을 찾는데 시간이 걸렸습니다.)
일단 문제가 해결된것 같은데,
appScheme.package가 null이 아니려면 패키지 버전이 다른것을 사용해야하나요?
아니면 모든 앱들(kb인 경우 4개 - kb-acp://, liivbank:/, newliiv://, kbbank://)의 packageName을 전부 찾아서 저희가 직접 작성해야하나요?
네 국민은 usb디버깅 모드로 안되요
문제 해결된걸로 보이시는데
마지막 문의는 어떤내용일까요?
intenturl에 package 가 포함되어있지 않아서 getMarketUrl이 동작하지 않는 상태여서요,
tosspayments_widget_sdk_flutter의 다른버전을 봐야하는건지
아니면 이쪽은 저희가 알아서 하면 되는 부분인지 질문드립니다!
intenturl에 package 가 포함되어있지 않아있으면 대응이 어렵네요. 이럴 경우 별도로 조치해주셔야할 것 같습니다.
넵. 친절하게 답변해주셔서 감사합니다.
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.