Swift를 사용하여 로컬 HTML을 UIWebView에로드
이것은 오늘 아침 일찍 나를 미치게 만듭니다. 일부 로컬 HTML을 웹 보기로로드하고 싶습니다.
class PrivacyController: UIViewController {
@IBOutlet weak var webView:UIWebView!
override func viewDidLoad() {
let url = NSURL(fileURLWithPath: "privacy.html")
let request = NSURLRequest(URL: url!)
webView.loadRequest(request)
}
}
html 파일은 내 프로젝트의 루트 폴더에 존재하는 그룹이 있습니다. 웹보기가 비어 있습니다. 어떤 아이디어가 잘못 되었습니까? 저는 xcode 6.1을 사용하고 iPhone 6 에서이 예제를 실행하고 있습니다.
애플리케이션 리소스에 대한 URL을 검색 광고 클래스를 URLForResource
방문 합니다 NSBundle
.
스위프트 2
let url = NSBundle.mainBundle().URLForResource("privacy", withExtension:"html")
스위프트 3
let url = Bundle.main.url(forResource: "privacy", withExtension: "html")
Swift 3 : 타입 세이프
@IBOutlet weak var webView: UIWebView!
override func viewDidLoad() {
super.viewDidLoad()
// Adding webView content
do {
guard let filePath = Bundle.main.path(forResource: "myFile", ofType: "html")
else {
// File Error
print ("File reading error")
return
}
let contents = try String(contentsOfFile: filePath, encoding: .utf8)
let baseUrl = URL(fileURLWithPath: filePath)
webView.loadHTMLString(contents as String, baseURL: baseUrl)
}
catch {
print ("File HTML error")
}
}
명심하세요 : NS = Not Swift :]
// Point UIWebView
@IBOutlet weak var webView: UIWebView!
override func viewDidLoad() {
super.viewDidLoad()
//load a file
var testHTML = NSBundle.mainBundle().pathForResource("privacy", ofType: "html")
var contents = NSString(contentsOfFile: testHTML!, encoding: NSUTF8StringEncoding, error: nil)
var baseUrl = NSURL(fileURLWithPath: testHTML!) //for load css file
webView.loadHTMLString(contents, baseURL: baseUrl)
}
스위프트 3 과 3 개 라인 :
if let url = Bundle.main.url(forResource: "privacy", withExtension: "html") {
webview.loadRequest(URLRequest(url: url))
}
Swift 버전 2.1
이 경우에는 인코딩도 포함됩니다.
// load HTML String with Encoding
let path = NSBundle.mainBundle().pathForResource("policy", ofType: "html")
do {
let fileHtml = try NSString(contentsOfFile: path!, encoding: NSUTF8StringEncoding)
webView.loadHTMLString(fileHtml as String, baseURL: nil)
}
catch {
}
프로젝트에 로컬 HTML 파일을 추가하고 해당 파일의 이름을 home.html 사용하여 다음 NSURL 개체를 만듭니다. 요청을 웹보기에 전달한 후 요청 된 URL을 웹보기에로드하고 스토리 보드를 사용하지 않는 경우 아래 코드와 같이 uiwebview를 컨트롤러보기에 추가합니다.
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let localfilePath = NSBundle.mainBundle().URLForResource("home", withExtension: "html");
let myRequest = NSURLRequest(URL: localfilePath!);
myWebView.loadRequest(myRequest);
self.view.addSubview(myWebView)
}
자세한 내용은 http://sourcefreeze.com/uiwebview-example-using-swift-in-ios/ 를 참조 하십시오.
이것은 나를 위해 일했습니다.
@IBOutlet weak var mWebView: UIWebView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
mWebView.loadRequest(NSURLRequest(URL: NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("fineName", ofType: "html")!)))
}
info.plist 파일에 유형 App Transport Security Settings
과 함께 추가 . 또한 유형 및 값이있는 앱 전송 보안 설정에 대한 하위 키 가 추가되었습니다 .Dictionary
Allow Arbitrary Loads
Boolean
YES
다음 은 튜토리얼입니다.
편집 됨
Swift 3 (Xcode 8)의 경우
mWebView.loadRequest(URLRequest(url: URL(fileURLWithPath: Bundle.main.path(forResource: "test/index", ofType: "html")!)))
UIWebView에서 html 또는 로컬 html 파일을로드 할 수 있습니다.
HTML 꾸러미 :
func loadHtmlCode() {
let htmlCode = "<html><head><title>Wonderful web</title></head> <body><p>wonderful web. loading html code in <strong>UIWebView</strong></></body>"
webView.loadHTMLString(htmlCode, baseURL: nil)
}
HTML 파일 :
func loadHtmlFile() {
let url = NSBundle.mainBundle().URLForResource("contactus", withExtension:"html")
let request = NSURLRequest(URL: url!)
webView.loadRequest(request)
}
자세한 내용은 http://webindream.com/load-html-uiwebview-using-swift/ 에서 찾을 수 있습니다 .
Swift 4의 간결한 버전입니다.
1) 가져 오기 추가 import WebKit
2) WebKit.framework
프로젝트에 추가
@IBOutlet weak var webView: WKWebView!
if let filePath = Bundle.main.url(forResource: "FILE_NAME", withExtension: "html") {
let request = NSURLRequest(url: filePath)
webView.load(request as URLRequest)
}
신속한 3 사용 :
do
{
let testHTML = Bundle.main.path(forResource: "about", ofType: "html")
let contents = try NSString(contentsOfFile: testHTML!, encoding: String.Encoding.utf8.rawValue)
let baseUrl = NSURL(fileURLWithPath: testHTML!) //for load css file
mWebView.loadHTMLString(contents as String, baseURL: baseUrl as URL)
}
catch
{
}
이것은 나를 위해 일했습니다 (Xcode 8, Swift 3)
@IBOutlet weak var webViewer : UIWebView!
override func viewDidLoad() {
super.viewDidLoad()
let localfilePath = Bundle.main.url(forResource: "homeInfo", withExtension: "html");
let myRequest = NSURLRequest(url: localfilePath!);
webViewer.loadRequest(myRequest as URLRequest);
self.view.addSubview(webViewer)
}
Swift 4.2, Xcode 10.1, WKWebView는 파일에서 HTML을로드합니다. UIWebView는 더 이상 사용되지 않습니다.
iOS 8 이상에서 실행되는 앱에서는 UIWebView를 사용하는 대신 WKWebView 클래스를 사용합니다.
import WebKit
@IBOutlet weak var webView: WKWebView!
override func viewDidLoad() {
super.viewDidLoad()
let localFilePath = Bundle.main.url(forResource: "document_terms_of_use", withExtension: "html")
let request = NSURLRequest(url: localFilePath!)
webView.load(request as URLRequest)
}
신속한 4.2 및 5 :
let webView = WKWebView(frame: CGRect(x: 0, y: 0, width: 1024, height: 768))
let url = URL(string: PERS_Path)
webView?.navigationDelegate = self
webView?.uiDelegate = self
webView!.loadFileURL(url!, allowingReadAccessTo: url!)
self.view. addSubview(webView)
이것을 추가하는 것을 잊지 마세요 WKNavigationDelegate, WKUIDelegate
참고 URL : https://stackoverflow.com/questions/26647447/load-local-html-into-uiwebview-using-swift
'ProgramingTip' 카테고리의 다른 글
DISTINCT를 사용하여 파티션 함수 COUNT () OVER 가능 (0) | 2020.11.07 |
---|---|
Swift로 iOS에서 SMS 보내기 (0) | 2020.11.07 |
OS X v10.6.8에서 현재 버전의 Ruby (2.2.3)로 업그레이드 할 수 있습니까? (0) | 2020.11.07 |
관리자의 인라인 양식에서 선택 항목 관리자의 외래 키 선택 제한 (0) | 2020.11.07 |
노드 프레임 워크를 사용하여 간단한 자바 펼쳐보기를 실행하는 동안 오류 발생 (0) | 2020.11.07 |