앱에서는 WebViewAssetLoader 인스턴스를 필요에 맞게 구성해야 합니다. 이
다음 섹션에 예시가 있습니다
인앱 애셋 및 리소스 만들기
WebViewAssetLoader가
PathHandler
인스턴스를 사용하여 지정된 리소스 경로에 해당하는 리소스를 로드합니다. 비록
앱에서 필요에 따라 리소스를 검색하기 위해 이 인터페이스를 구현할 수 있지만,
Webkit 라이브러리 번들
AssetsPathHandler 드림
및
ResourcesPathHandler
각각 Android 애셋과 리소스를 로드하는 데 사용됩니다.
시작하려면 앱의 애셋과 리소스를 만드세요. 일반적으로
다음 사항이 적용됩니다.
HTML, JavaScript, CSS와 같은 텍스트 파일은 애셋에 속합니다.
이미지 및 기타 바이너리 파일은 리소스에 속합니다.
프로젝트에 텍스트 기반 웹 파일을 추가하려면 다음 단계를 따르세요.
Android 스튜디오에서 app > src > 기본 폴더
새로 만들기 > 디렉터리로 이동합니다.
<ph type="x-smartling-placeholder"></ph>
<ph type="x-smartling-placeholder"></ph>
그림 1. 다음에 대한 애셋 폴더 만들기
살펴보겠습니다
폴더 이름을 'assets'로 지정합니다.
그림 2. 애셋 폴더의 이름을 지정합니다.
assets 폴더를 마우스 오른쪽 버튼으로 클릭한 다음 새로 만들기 > File을 참고하세요.
index.html를 입력하고 Return 키를 누르거나
Enter 키.
<ph type="x-smartling-placeholder"></ph>
<ph type="x-smartling-placeholder"></ph>
그림 3.index.html 만들기
파일에서 참조됩니다.
이전 단계를 반복하여
stylesheet.css
다음 두 코드에서 콘텐츠로 만든 빈 파일을 채웁니다.
샘플입니다.
```html <!-- index.html content -->
<html> <head> <!-- Tip: Use relative URLs when referring to other in-app content to give your app code the flexibility to change the scheme or domain as necessary. --> <link rel="stylesheet" href="/assets/stylesheet.css"> </head> <body> <p>This file is loaded from in-app content.</p> <p><img src="/res/drawable/android_robot.png" alt="Android robot" width="100"></p> </body> </html> ```
앱에서 인앱 콘텐츠와
인터넷(예: 웹사이트의 CSS에 의해 스타일이 지정된 인앱 HTML 페이지)
WebViewAssetLoader는 이 사용 사례를 지원합니다. 등록된 기기 중 아무 것도 등록하지 않은 경우
인스턴스 PathHandler개가 지정된 경로의 리소스를 찾을 수 있습니다. WebView에 해당합니다.
다시 인터넷에서 콘텐츠를 로드하는 것으로 여겨집니다. 인앱 콘텐츠와
/assets/ 또는
/resources/: 인앱 리소스의 경우 Cloud Shell의 리소스를
확인할 수 있습니다.
baseUrl: HTML 콘텐츠가 로드되는 URL입니다. 이 이름은
HTTP(S) URL입니다.
data: 표시하려는 HTML 콘텐츠입니다(문자열).
mimeType: 일반적으로 text/html로 설정해야 합니다.
encoding: baseUrl이 HTTP(S) URL인 경우에는 사용되지 않으므로 다음과 같을 수 있습니다.
null로 설정합니다.
historyUrl: baseUrl와 동일한 값으로 설정됩니다.
HTTP(S) URL을 baseUrl로 사용하는 것이 좋습니다. 이렇게 하면
앱이 동일 출처 정책을 준수하도록 해야 합니다.
콘텐츠에 적합한 baseUrl을(를) 찾을 수 없어 이를 사용하려는 경우
loadData(),
콘텐츠를 인코딩해야 하며백분율 인코딩
또는
Base64
인코딩을 사용합니다.
Base64 인코딩을 선택하고 Android API를 사용하여
다음 코드 샘플에서와 같이 프로그래매틱 방식으로 사용합니다.
file:// URL과 data: URL은 불투명한 출처로 간주됩니다.
즉, 웹 서버와 같은 강력한 웹 API를 사용할 수 없으며
fetch()
또는
XMLHttpRequestloadData()는 내부적으로 data: URL을 사용하므로
대신 WebViewAssetLoader 또는 loadDataWithBaseURL()를 사용하세요.