3 votes

Comment charger le fichier CSS avec HTML dans Swift 3 ?

J'ai un fichier HTML qui s'affiche correctement sur mon appareil mais qui ne charge pas le fichier CSS qu'il contient sur mon appareil. Lorsque j'ouvre le fichier HTML dans mon navigateur, mon CSS fonctionne correctement.

Voici mon code HTML :

<head>
    <link rel="stylesheet" type="text/css" href="stylesheet.css">
</head>
<body>
    <h1>Prateek Bhatt</h1>
    <br>
    <p>is the greatest</p>
</body>

Voici mon fichier CSS nommé stylesheet.css :

body {
    background-color: lightblue;
}

h1 {
    color: navy;
    margin-left: 20px;
}

Il s'agit également du code pour Swift 3 :

class ViewController: UIViewController {

    @IBOutlet var webView: UIWebView!

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.

        let htmlFile = Bundle.main.path(forResource: "index", ofType: "html")
        let html = try? String(contentsOfFile: htmlFile!, encoding: String.Encoding.utf8)
        webView.loadHTMLString(html!, baseURL: nil)
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }    
}

2voto

Ellen Points 4191

Essayez de récupérer le contenu du CSS dans une chaîne de caractères et utilisez le code ci-dessous. Supposons que le nom de votre fichier CSS soit Style.css

guard let path = Bundle.main.path(forResource: "Style", ofType: "css") else { return }
let cssString = try! String(contentsOfFile: path).trimmingCharacters(in: .whitespacesAndNewlines)
let jsString = "var style = document.createElement('style'); style.innerHTML = '\(cssString)'; document.head.appendChild(style);"
webView.evaluateJavaScript(jsString, completionHandler: nil)

EDIT Veuillez utiliser WKWebview pour rendre le script java.

https://developer.apple.com/documentation/uikit/uiwebview

vous pourrez alors appeler la méthode evaluateJavaScript.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X