swift 获取本地html5,在Swift中从本地文件编辑和加载HTML(示例代码)

我的项目包中存储了一个.html文件。当我在WebView。(UIWebview / WKWebview)中加载数据时,数据被加载但其中的表结构不可见。表格边框,列,行。这些值只是浮动的。在Chrome浏览器中,它可以正常打开

let myURL = Bundle.main.url(forResource: "prescription", withExtension: "html")

let myURLRequest:URLRequest = URLRequest(url: myURL!)

webView.loadRequest(myURLRequest)

Chrome浏览器:eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9qM0tjSi5wbmcifQ==

iOS App UIWebView:

eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9ubXd1ai5wbmcifQ==

Html页面响应适合任何大小,但我无法正确加载UIWebview作为Web。我需要在本地存储文件,因为我需要更改其值并在webview上显示。

答案

找到解决方案:如果您正在应用一些本地css,其路径在HTML文件中。即

将css文件“my Default.css”添加到xcode项目目录中。

将HTML转换为字符串,并使用本地路径替换HTML文件中的css路径。 :

使用基本URL将HTML内容加载到UIWebView。 (提供本地文件路径作为baseUrl很重要)

webView = UIWebView()

let pathToInvoiceHTMLTemplate = Bundle.main.path(forResource: "presc", ofType: "html")

let pathToHTMLCSS = Bundle.main.path(forResource: "myDefault", ofType: "css")

do {

var strHTMLContent = try String(contentsOfFile: pathToInvoiceHTMLTemplate!)

strHTMLContent = strHTMLContent.replacingOccurrences(of: "./assets/stylesheets/myDefault.css", with: pathToHTMLCSS!)

let pdfURL = URL(fileURLWithPath: pathToInvoiceHTMLTemplate!)

webView.loadHTMLString(strHTMLContent, baseURL: pdfURL)

}catch let err{

print(err)

}

另一答案

将本地内容加载到WKWebView时,你应该使用loadHTMLString(_:baseURL:)而不是loadRequest。第一个函数允许您提供基本URL,您也可以将其指向包中 - 因此您显然需要将所有相关文件添加到应用程序包中。

guard let indexPath = Bundle.main.path(forResource: "index", ofType: "html"),

let content = try String(contentsOfFile: indexPath, encoding: .utf8),

let baseUrl = URL(fileURLWithPath: indexPath) else {

// Error handling

}

webView.loadHTMLString(content, baseURL: baseUrl)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值