2017-01-03 10 views
3

Я хочу открыть локальный html-файл на Safari интеграции в моем приложении Swift 3.Как открыть локальный файл html на Safari?

Я знаю, как это сделать с помощью 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

Не могли бы вы поделиться код, чтобы отобразить локальный файл в сафари (фрагмент кода вы поделились в настоящее время не является). А также вставить вывод ошибки консоли? – volatilevar

ответ

5

Вы не можете сделать это с помощью SFSafariViewController

От компании Apple Документация:

1. Выбор Лучший веб-просмотр класса

Если ваше приложение позволяет пользователям просматривать веб-сайты из любого места в Интернете, используйте класс SFSafariViewController. Если ваше приложение настраивает, взаимодействует или управляет отображением веб-контента, используйте класс WKWebView.

2. если посмотреть на декларации init

convenience init(url URL: URL) 

url: URL, чтобы перейти. URL должен использовать схему http или https.

Используя 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) 
    } 
} 

Выход:

enter image description here