2016-01-04 13 views
8

में स्थानीय सीएसएस और जे एस फ़ाइलें लोड हो रहा है 2.1.1 & Xcode 7.1
मेरे कोड WKWebView और भार का उपयोग करता index.html एक स्थानीय फ़ाइल के रूप में, लेकिन जैसा कि सिर में दिखाया गया index.css लोड और अन्य जावास्क्रिप्ट फ़ाइलों में विफल रहता है टैग।स्विफ्ट में WKWebView

मेरा सबसे अच्छा अनुमान यह है कि बेसURL सही नहीं है, यदि हां, तो मैं बेसURL को सही तरीके से कैसे सेट कर सकता हूं? धन्यवाद

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>

enter image description here

उत्तर

6

फ़ाइल यूआरएल मैं समस्या को हल करने में सक्षम था के बारे में here पढ़ने का एक सा होने के बाद।

यहाँ कोड

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 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 
    } 
} 

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

हाय है, आप कृपया वर्णन कर सकते हैं कि वास्तव में क्या रास्ता आप के बजाय 'फ़ाइल का प्रयोग किया जाता है: /// /abc /'? धन्यवाद –

+0

यह महत्वपूर्ण है कि आपका बेसयूआरएल 'फ़ाइल: //' से शुरू होता है, सटीक फ़ाइलपैथ महत्वपूर्ण नहीं है –

+0

Bundle.main.bundlePath (स्विफ्ट 3) –

संबंधित मुद्दे