-
[iOS] WKWebView Content Size ๋ชจ๋ฐ์ผ์ ๋ง์ถ๊ธฐ๐ iOS/๊ฐ๋ฐ 2023. 6. 4. 18:57
์น๋ทฐ์์ ํน์ ์นํ์ด์ง๋ฅผ ๋ก๋ํ ๋, ํด๋น ํ์ด์ง๊ฐ ์ผ์ชฝ์ฒ๋ผ ๋ชจ๋ฐ์ผ์ ์นํ์ ์ด์ง ์์์
์ปจํ ์ธ ์ ์ฌ์ด์ฆ๊ฐ PC๋ฒ์ ์ ๋ณด๋ ๊ฒ์ฒ๋ผ ๋ก๋๋ ๋๊ฐ ์์ต๋๋ค.
์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋์ meta ํ๊ทธ๋ฅผ ์๋์ ๊ฐ์ด ์์ ํด์ฃผ๋ฉด ์ค๋ฅธ์ชฝ์ฒ๋ผ ๋ง๋ค์ด์ฃผ์ด ํด๊ฒฐํ ์ ์๋๋ฐ,
<meta name="viewport" content="width=device-width">
์นํ์ด์ง์ ์ฝ๋๋ฅผ ์ง์ ์์ ํ ์ ์๋ ์ํฉ์ผ ๋๋
iOS ๋ค์ดํฐ๋ธ ์ฝ๋์์์ ํด๋น ํ๊ทธ๋ฅผ ์ฝ์ ํ๋ ์คํฌ๋ฆฝํธ๋ฅผ ์ถ๊ฐํด์ฃผ๋ฉด ๋ฉ๋๋ค.
evaluateJavascript ํจ์๋ฅผ ํตํด ์ํ๋ ์์ ์ ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ์ฌ ํด๋น ํ๊ทธ๋ฅผ ์ฝ์ ํด์ฃผ๊ฑฐ๋
var scriptContent = "var meta = document.createElement('meta');" scriptContent += "meta.name='viewport';" scriptContent += "meta.content='width=device-width';" scriptContent += "document.getElementsByTagName('head')[0].appendChild(meta);" webview.evaluateJavaScript(scriptContent) { (result, error) in if let error = error { print("error: \(error)") } }
๋๋ addUserScript ํจ์๋ฅผ ํตํด ์น ํ์ด์ง์ ๋ก๋ฉ ์์ ์ ์คํฌ๋ฆฝํธ๋ฅผ ์ฝ์ ํด์ค ์๋ ์์ต๋๋ค.
let scriptContent = """ var meta = document.createElement('meta'); meta.setAttribute('name', 'viewport'); meta.setAttribute('content', 'width=device-width'); document.getElementsByTagName('head')[0].appendChild(meta); """ let userScript = WKUserScript(source: scriptContent, injectionTime: .atDocumentEnd, forMainFrameOnly: true) let contentController = WKUserContentController() contentController.addUserScript(userScript) let webConfiguration = WKWebViewConfiguration() webConfiguration.userContentController = contentController webview = WKWebView(frame: self.view.bounds, configuration: webConfiguration)
++)
์๋๋ก์ด๋์์๋ Webview์ ์์ฒด์ ์ผ๋ก ํจ์๋ฅผ ์ ๊ณตํ๋๋ฐ iOS์๋ ์๋ ๋ด ๋๋ค..๐ฅฒ ๋ง๋ค์ด์ฃผ์ธ์ ์ ํ ์๋ฉ
// wide viewport๋ฅผ ์ฌ์ฉํ๋๋ก ์ค์ webview.getSettings().setUseWideViewPort(true); // ์ปจํ ์ธ ๊ฐ ์น๋ทฐ๋ณด๋ค ํด ๊ฒฝ์ฐ ์คํฌ๋ฆฐ ํฌ๊ธฐ์ ๋ง๊ฒ ์กฐ์ webview.getSettings().setLoadWithOverviewMode(true);
์ฐธ๊ณ
https://stackoverflow.com/questions/26295277/wkwebview-equivalent-for-uiwebviews-scalespagetofit
https://devvkkid.tistory.com/97
https://swiftsenpai.com/development/web-view-javascript-injection/
'๐ iOS > ๊ฐ๋ฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ