如何在Safari上打开本地HTML文件?

8

我希望在我的Swift 3应用程序中使用Safari集成打开本地HTML文件。

我知道如何使用URL来实现这一点。以下是我用于执行此操作的代码:

let encodedString = url.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)

let svc = SFSafariViewController(url: NSURL(string: encodedString!) as! URL)
self.present(svc, animated: true, completion: nil)

但是我不能使用本地文件来做相同的事情。 我已经将我的html文件复制到我的项目中,并且可以在目录树上看到它,但是我无法使它工作。 我查看了Load local html into UIWebView using swift以供参考。

如何将本地html文件加载到Safari集成中?

提前致谢!


1
请问您能否分享一下在Safari中显示本地文件的代码(您目前分享的代码片段不是这个)?同时也能够粘贴一下控制台的错误输出吗? - volatilevar
1个回答

8

使用SFSafariViewController无法完成此操作。

来自苹果文档:

1. 选择最佳的Web视图类

如果您的应用程序允许用户从互联网上的任何地方查看网站,请使用SFSafariViewController类。如果您的应用程序自定义、与Web内容交互或控制Web内容的显示,请使用WKWebView类。

2. 如果您查看init的声明

convenience init(url URL: URL)

url: 要导航到的URL。该URL必须使用httphttps协议。

使用Webkit或WebView

helloAshok.html

<html>
    <head>
    </head>
    <body>
        <br />
        <h2> Welcome ASHOK</h2>
    </body>
</html>

ViewContrller.swift

class ViewController: UIViewController {
    @IBOutlet weak var myWebView: UIWebView!

    override func viewDidLoad() {
        super.viewDidLoad()

        let localFilePath = Bundle.main.url(forResource: "helloAshok", withExtension: "html")
        let request = URLRequest(url: localFilePath!)
        myWebView.loadRequest(request)
    }
}

输出:

这是图片描述


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接