[유니티][안드로이드] Unity WebView Android 9.0 이상에서 화면 안 나오고 에러 처리 방법
유니티에서 웹페이지를 표시 하거나
웹브라우저를 사용 하기 위해서
웹뷰(WebView)를 사용 해야 하는데
유니티에서 내장으로 된 웹뷰 모쥴이 없다.
그래서 찾은 솔루션이 구글링 해보면 제일 많이 나오는
Gree Unity WebView 플러그인을 사용 하기로 했다.
Gree 웹뷰 설치 및 소스코드
https://dragontory.tistory.com/407
코드를 작성 하고 오브젝트 붙히고 버튼을 눌렀다.
정상 작동이 안 된다.
그냥 하얀 화면만 나온다.
인터넷 검색 결과
Android 9.0 (8.0도 마찬가지 인듯... ) 이상에서는 보안 정책 변경으로
퍼미션 에러가 나서 그렇다.
에러: Cleartext HTTP traffic not permitted
해결 1: ( 간단히 해결 2로 해도 됨. )
AndroidManifest.xml를 커스터마이징 하여 권한을 추가 한다.
<application
android:label="..."
...
android:usesCleartextTraffic="true">
android 9에서는 AndroidManifest.xml에 android:usesCleartextTraffic="true"를 추가 해줌.
AndroidManifest.xml 파일은 어디에:
AndroidManifest.xml : 유니티 프로젝트 빌드 후
-> project/Temp/StagingArea/AndroidManifest.xml 파일 복사
-> Assets/Plugins/Android/에 복사 해주고
-> 편집 -> 다시 빌드.
<application android:theme="@style/UnityThemeSelector" android:icon="@mipmap/app_icon" android:label="@string/app_name" android:usesCleartextTraffic="true">
내 경우 이 방법으로는 해결이 안 됐다.
그래서 또 찾아 봄.
해결 2:
유니티에서 해결 1의 AndroidManifest.xml의 편집 대신에
프로젝트에서 다음을 디파인 하고 빌드 하면
에러가 해결 된다.
UNITYWEBVIEW_ANDROID_USES_CLEARTEXT_TRAFFIC
어디에 정의 해 주나 :
Project Settings ->Scripting Define Symbols
입력 칸데 추가 해준다.
위와 같이 정의 하고 빌드 하면
웹뷰가 정상적으로 나오는 것을 볼 수 있다.
셋팅 창 말고 스크립트 코드로 디파인 정의 하고 싶을 때는 :
https://dragontory.tistory.com/60
을 참고 하세요.
Happy~~~
'Unity3D' 카테고리의 다른 글
[이제 유니티에서 바로 보세요] 유니티 안드로이드 로그캣으로 디버깅 하기 - Unity Android Logcat Debugging. (0) | 2021.12.13 |
---|---|
Unity IAP Error - ProductCatalog could not be found (0) | 2021.12.03 |
[유니티][안드로이드] 유니티 웹뷰 사용 하기 - Unity WebView Gree (0) | 2021.12.01 |
게임기획이 필요 한가? (0) | 2021.05.10 |
구글 api를 이용한 QR Code 이미지 생성 방법 및 웹페이지 이미지 불러오기 (0) | 2021.04.29 |