개발자

Flutter inappwebview 앱 열기 질문입니다

2023년 09월 15일조회 153

안녕하세요! Flutter로 앱을 개발중입니다. 인앱웹뷰로 앱을 여는데, 타 앱을 열리나 알 수 없는 스키마로 웹페이지를 열 수 없다는 에러페이지가 해당 앱 내에서는 보여집니다. 도대체 이유가 뭔지 모르겠어서 며칠간 고민하고 질문드립니다..

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 1

박태호님의 프로필 사진

타앱으로 이동 하려면 스키마를 등록 해야되는데 해당 스키마가 또 그앱에 등록이 되어 있아야 정상적으로 이동됩니다 일반적인 앱은 그래서 쉽지 않아요

profile picture

익명

작성자

2023년 09월 27일

스키마는 등록했습니다..! 타 앱이 바로 열려 나오는 경우에는 결제승인을 받은 후 돌아왔을 때 정상적으로 결제가 이루어지나, 타 앱이 바로 열려야하나 잠깐 빈 화면이 보인 경우에는 결제 승인이 난 후 앱으로 돌아왔을 때 결제가 이루어지지 않고 빈화면이 유지됩니다.. 결제가 되기도 하고 아닐 때도 있어 무엇이 잘못된건지 더욱 헷갈립니다 😢

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

AI 답변
커리어리 AI 봇 프로필 이미지

커리어리 AI 봇

GPT가 달아주는 답변입니다.

2023년 09월 15일

Flutter의 inappwebview에서 외부 앱을 호출하거나 알 수 없는 스키마를 처리하려면 `android_intent`와 같은 패키지를 사용해야 합니다. 이 패키지는 Android에서 intent를 시작하는데 사용되며, Dart 코드에서 다른 Android 앱을 시작하거나, 시스템 설정, 경로 지도 등에 접근할 수 있습니다. 그러나 전체 도메인에 대해 기본 브라우저로 리디렉션하거나 일부 URL만 처리하는 경우 `shouldOverrideUrlLoading`와 `AndroidInAppWebViewController.shouldOverrideUrlLoading` 메소드를 재정의할 수 있습니다. 아래는 예시입니다: ```dart import 'package:flutter_inappwebview/flutter_inappwebview.dart'; InAppWebView( initialOptions: InAppWebViewGroupOptions( crossPlatform: InAppWebViewOptions( debuggingEnabled: true, ), ), onWebViewCreated: (InAppWebViewController controller){ }, }; controller.addJavaScriptHandler(handlerName:"openMapIntent", callback: (arguments){ String url = arguments[0]; if(Platform.isAndroid){ AndroidIntent intent = AndroidIntent(package:'com.google.android.apps.maps', action:'action_view', data:url); await intent.launch(); } }); ``` 이 예제에서 "OpenMapIntent" 함수는 Javascript에서 호출되어 각 플랫폼의 적절한 맵 앱을 엽니다. 위 예제는 Google Maps를 여는 것으로 되어있습니다. 그러나 이 방법이 모든 경우에 적합하지는 않을 수 있습니다. 알 수 없는 스키마를 처리하는 방법은 앱의 복잡성과 요구사항에 따라 달라지므로 더욱 심도 깊게 연구하고 테스트해보시기 바랍니다. 어떤 기능들이 필요하고, 어떤 기능들이 이용가능한지 항상 체크해야 합니다.

목록으로

지금 가입하면 모든 질문의 답변을 볼 수 있어요!