티스토리 뷰
- 상황 : html파일들이 압축되어있는 파일(zip)을 document 디렉토리에 풀고, WKWebView로 로드하였으나,
리소스를 불러오지 못하는 상황.
<파일 정보> (다음 파일이 있다고 가정한다.)
- web.zip ( main.html, main.files )
A. Xcode에 압축 파일 추가. ( Build Phases -> Copy Bundle Resources )
B. 코드에서 Document 디렉토리에 압축풀기 ( Zip 라이브러리 사용 : https://github.com/marmelroy/Zip )
* Document 디렉토리는 IOS에서 제공하는 사용자가 사용할 수 있는 디렉토리. 빌드되는 앱마다 하나씩 가지고 있음.
import Zip // https://github.com/marmelroy/Zip 라이브러리 사용
...
do {
let filePath = Bundle.main.url(forResource: "web", withExtension: "zip")
// 이 부분 수행이 끝나면 {AppDirectory}/Document 아래에 web 디렉토리로 압축이 풀린다.
let _ = try Zip.quickUnzipFile(filePath!)
}
catch {
// 압축풀기 실패!
}
C. WKWebView에 호출 ( FileManager 사용 )
import WebKit
...
@IBOutlet weak var webView : WKWebView!
override func viewDidLoad() {
let documentURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first
do {
// web디렉토리 URL을 가져오고
let webURL = documentURL?.appendingPathComponent("web")
// 디렉토리 내의 파일 목록을 출력해본다.
print("web directory Files : \(try FileManager.default.contentsOfDirectory(atPath : webURL!.path))")
// main.html파일 URL을 가져온 뒤
let htmlFileURL = webURL?.appendingPathComponent("main.html")
// webView에서 로드해준다.
// 이 부분에서 allowingReadAccessTo 파라미터에는 main.html의 부모 디렉토리 이상 레벨의 URL을 지정해준다.
// 여기서는 최상위 레벨인 Document의 URL을 추가했다. webURL을 추가해도 무방하다.
webView.loadFileURL(htmlFileURL!, allowingReadAccessTo: documentURL!)
}
catch {
// 알 수 없는 오류
}
}
반응형
'IOS' 카테고리의 다른 글
XCode Unable to prepare <device_name> for development (0) | 2022.03.04 |
---|---|
UICollectionView 적용하기 (Swift 4.2) (0) | 2019.05.22 |
Xcode CocoaPods 프로젝트 버전보다 낮은 버전 라이브러리 추가하기 (0) | 2019.05.14 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- idea command
- idea
- png
- ReactNative 한글
- WKwebview
- TextInput 한글
- proguard
- F
- 프로가드
- multidex
- local
- Podfile
- HTML
- multiple commands produce
- zip
- uicollecionview
- Monterey
- Gif
- env: python
- mac command
- DEX
- 12.5
- jpeg
- cocoapods
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함