2017-12-21 49 views
2

저는 Switft Playground에서 작업 중이며 이미지를 포함하여 전체 HTML5 컨텐트를 표시하는 WebView를 얻으려고합니다. 현재 웹에서 나온 HTML5 콘텐츠를 표시하려면 WebView를 가져올 수 있지만 Playground 내에서 로컬로로드하는 경우 텍스트 만 표시 할 수 있습니다. Swift Playground WebView에 로컬 이미지가 표시되지 않습니다.

내 소스 코드입니다 :

import Foundation 
import WebKit 

import Foundation 
import UIKit 

public class MyWebKitViewController: UIViewController, WKUIDelegate { 

var webView: WKWebView! 

public override func loadView() { 
    let webConfiguration = WKWebViewConfiguration() 
    webView = WKWebView(frame: .zero, configuration: webConfiguration) 
    webView.uiDelegate = self 
    view = webView 
} 

public func loadLocalHtml(filename: String) { 
    let possiblePath = Bundle.main.path(forResource: filename, ofType: "html") 
    if let path = possiblePath { 
     let url = URL(fileURLWithPath: path) 
     webView.loadFileURL(url, allowingReadAccessTo: url)} 
} 
} 

그리고 이것은이 내가 loadLocalHtml 함수를 호출하기 위해 사용하고 코드입니다 : 내가 솔루션 다른 시도했습니다

import UIKit 
import PlaygroundSupport 

//Set current Playground View 
let vc = MyWebKitViewController() 
PlaygroundPage.current.liveView = vc 

vc.loadLocalHtml(filename: "testing") 

을 비슷한 소리로 여기에 게시했지만 성공하지 못했습니다. 어떤 경우에는 흰색 배경을 표시하지만 내용이 전혀없는 WebView를 얻습니다. 어떤 도움을 주셔서 미리 감사드립니다!

+0

당신은 실제 하나의보기 응용 프로그램을 시도? 어쩌면 인터넷 접속이 있더라도? (중요한 것은 무엇인지는 모르지만 놀이터를 지정하고 * 'WebKit'을 지정했습니다.) 일을 배제하려고합니다. – dfd

+0

단일보기 응용 프로그램을 수행하지는 않았지만 놀이터 안에 WKWebView가 포함 된 이중보기를 수행했습니다. 그것은 인터넷에서 오는 컨텐트와 잘 작동합니다. 응답 해 주셔서 감사합니다. –

답변

0

같은 문제가 있습니다. 이런 식으로해야하지만 이해하지 못합니다. 스위프트 놀이터 (Swift Playgrounds)에는 리소스를 관리하는 다른 방법이 있습니다. 당신이 방법을 찾을해야

import UIKit 
import WebKit 
import PlaygroundSupport 

let webView = WKWebView(frame: CGRect(x: 0, y: 0, width: 375, height: 667)) 
if let url = Bundle.main.url(forResource: "index", withExtension: "html") { 
    let imageURL = Bundle.main.url(forResource: "image1", withExtension: "png", subdirectory: "images/") 
    webView.loadFileURL(url, allowingReadAccessTo: imageURL!) 
} 

PlaygroundPage.current.liveView = webView 

을 예상대로 엑스 코드 놀이터에서 코드가 작동, 답하십시오]