9

in Swift 2.1.1 & Xcode 7.1
私のコードは WKWebView を使用し、ローカル ファイルから index.html をロードしますが、head タグに示されているように index.css およびその他の JavaScript ファイルをロードできません。

私の最善の推測は、baseURL が正しくないということです。そうであれば、baseURL を正しく設定するにはどうすればよいですか? ありがとう

import UIKit
import WebKit

class ViewController: UIViewController {
@IBOutlet var containerView: UIView! = nil  //allows the class to refrence WKWebView
var webView: WKWebView?

override func loadView() {
    super.loadView()

    self.webView = WKWebView()
    self.view = self.webView!
}

override func viewDidLoad() {
    super.viewDidLoad()

    let HTMLDocumentPath = NSBundle.mainBundle().pathForResource("index", ofType: "html")
    let HTMLString: NSString?

    do {
        HTMLString = try NSString(contentsOfFile: HTMLDocumentPath!, encoding: NSUTF8StringEncoding)
        let baseUrl  = NSURL.fileURLWithPath("")
        webView!.loadHTMLString(HTMLString as! String, baseURL: baseUrl)

    } catch {
        HTMLString = nil
    }
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
}

}

   <head>
      <meta charset="UTF-8">
      <title>RRR</title>
      <link rel="stylesheet" href="jquery.mobile-1.4.5.css"/>
      <link rel="stylesheet" href="index.css"/>
      <script src="jquery-1.11.3.js"></script>
      <script src="jquery.mobile-1.4.5.js"></script>
      <meta name="viewport" content="width=device-width"/>
   </head>

ここに画像の説明を入力

4

1 に答える 1

7

ここでファイルのURLについて少し読んだ後、問題を解決できました。

ここにコードがあります

import UIKit
import WebKit

class ViewController: UIViewController {
    @IBOutlet var containerView: UIView! = nil  //allows the class to reference WKWebView
    var webView: WKWebView?

    override func loadView() {
        super.loadView()

        self.webView = WKWebView()
        self.view = self.webView!
    }

    override func viewDidLoad() {
        super.viewDidLoad()

        let baseUrl = NSURL(string: "file:///<yourFilePath>/abc/")
        let path = NSBundle.mainBundle().pathForResource("abc/index", ofType: "html")
        let HTMLString: NSString?

        do {
            HTMLString = try NSString(contentsOfFile: path!, encoding: NSUTF8StringEncoding)
            webView!.loadHTMLString(HTMLString as! String, baseURL: baseUrl )

        } catch {
            HTMLString = nil
        }
    }
}
于 2016-01-05T01:42:44.697 に答える