从头开始创建自定义Web视图

时间:2019-01-17 06:02:06

标签: ios

我所处的情况是,我希望Webview的灵活性比UIWebview所提供的更大,而不是WKWebview所提供的。诸如在开始之前自定义Web请求之类的事情,例如发送标头和重定向。众所周知,iOS 12中现已正式弃用UIWebview。

我现在期待一个通用的Webview,我知道它是可能的,因为开源示例说Firefox for iOS。 如果您一直在使用任何项目或知道,请告诉我。或者,如果您可以给我一些信息,如何实现这一点,或者任何tutorails链接都将有所帮助。

1 个答案:

答案 0 :(得分:-1)

声明WebView对象

u''(t) + 0.106*u'(t) +0.006*u(t) = 0
u(0) = 0
u'(1) = 1
u := Odesolve(t,10)

//在webView中加载数据

var webView: WKWebView!

// Delegate在webView加载完成时调用的方法。 //您可以在此处应用CSS或样式

func loadUrl() {

    var webView : WKWebView!
    let script: WKUserScript = WKUserScript(source: source, injectionTime: .atDocumentEnd, forMainFrameOnly: true)
    let userContentController: WKUserContentController = WKUserContentController()
    let configuration = WKWebViewConfiguration()
    configuration.userContentController = userContentController
    userContentController.addUserScript(script)
    webView = WKWebView(frame: CGRect.zero, configuration: configuration)
    webView.uiDelegate = self
    webView.navigationDelegate = self
    webView.allowsLinkPreview = true

    //Load the Data from URL
    let url = URL(string: "Your URL")
    var urlRequest = URLRequest(url: url! as URL)
    urlRequest.setValue("application/json", forHTTPHeaderField: "Accept")
    urlRequest.setValue("user-agent", forHTTPHeaderField: "User-Agent")

    webView.load(urlRequest)


    //Load the Data from local HTML

    do {
        guard let filePath = Bundle.main.path(forResource: "Your-HTML-File", ofType: "html")
            else {
                print ("FILE READING ERROR")
                return
        }
        //get the content of HTML File
        let contents =  try String(contentsOfFile: filePath , encoding: .utf8)
        webView.loadHTMLString(contents, baseURL:URL(fileURLWithPath: Bundle.main.bundlePath))
    }
    catch {
        print ("FILE HTML ERROR")
    }
}