मेरे आईओएस 10 एप्लिकेशन में मेरे पास मूल foo.html
है। मार्कअप सीधे आगे है:क्या WKWebView द्वारा लोड की गई HTML फ़ाइल में जावाड एम्बेड किया जा सकता है?
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>Example</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<p>Hello, World!</p>
<div id="container"></div>
</body>
<script type="text/javascript" src="bar.js"></script>
<script type="text/javascript">
// Bar is defined in bar.js
var bar = new Bar();
</script>
</html>
मैं निम्नलिखित के साथ इसे लोड:
let htmlFile = Bundle.main.path(forResource: "foo", ofType: "html")
let html = try? String(contentsOfFile: htmlFile!, encoding: String.Encoding.utf8)
webView.loadHTMLString(html!, baseURL: nil)
मेरे iOS एप्लिकेशन में, मैं bar
चर का उपयोग करने की कोशिश कर रहा हूँ। बाद डोम WKNavigationDelegate की विधि द्वारा के रूप में पुष्टि भरी हुई है द्वारा: func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!)
मैं इस तरह कोड है:
var htmlContent : String {
var s = "console.log(bar)"
return s
}
webView.evaluateJavaScript(htmlContent, completionHandler: { result, error in
if let error = error {
print("error: \(error)")
}
if let result = result {
print("result: \(result)")
}
})
मैं एक त्रुटि हो रही अंत:
error: Error Domain=WKErrorDomain Code=4 "A JavaScript exception occurred" UserInfo={WKJavaScriptExceptionLineNumber=1, WKJavaScriptExceptionMessage=ReferenceError: Can't find variable: Bar, WKJavaScriptExceptionSourceURL=about:blank, NSLocalizedDescription=A JavaScript exception occurred, WKJavaScriptExceptionColumnNumber=47}
मैं क्या कोशिश कर रहा हूँ है संभव करने के लिए? क्या मुझे इस समस्या से अलग तरीके से संपर्क करना है? evaluateJavaScript
के लोड होने के बाद मेरे डोम के दायरे तक पहुंच है क्योंकि अभी के रूप में, ऐसा लगता है कि ऐसा नहीं है।
आप ठीक उसी कोड दिखा रहे हैं जब आप उस त्रुटि मिलती है? 'WKJavaScriptExceptionColumnNumber = 47' यह सुझाव दे रहा है कि' webView.evaluateJavaScript' पर जावास्क्रिप्ट कोड कम से कम 48 वर्ण हैं, लेकिन आपका 'htmlContent' केवल 16 है। सही जानकारी दिखाने के बिना, कोई भी आपकी मदद नहीं कर सकता है। – OOPer
यह सही कोड नहीं है, लेकिन सटीक कोड किसी भी माध्यम से संदर्भ के साथ मदद नहीं करेगा। यह वही करता है जो यह उदाहरण कर रहा है और वह उस ऑब्जेक्ट को बनाने का प्रयास कर रहा है जो नामस्थान/कोड 'bar.js' में उपलब्ध है, सिवाय इसके कि ऐसा लगता है कि यह' bar.js' की सामग्री तक नहीं पहुंच सकता है और/या यह बाहर है दायरे का – randombits
सटीक कोड कई मामूली गलतियों की संभावनाओं को खत्म करने में मदद करेगा। वैसे भी, बक्षीस आपकी मदद करेगा। सौभाग्य। – OOPer