Я пытаюсь использовать evaluateScript
в URL. В документации это показывает:
func evaluateScript(_ script: String!, withSourceURL sourceURL: URL!) -> JSValue!
func initializeJS() {
self.jsContext = JSContext()
// Specify the path to the jssource.js file.
if let jsSourcePath = Bundle.main.path(forResource: "Rejistration", ofType: "js") {
do {
// Load its contents to a String variable.
let jsSourceContents = try String(contentsOfFile: jsSourcePath)
// Add the Javascript code that currently exists in the jsSourceContents to the Javascript Runtime through the jsContext object.
let newURL = URL(string: "https://google.com/")
self.jsContext.evaluateScript(jsSourceContents, newURL )
if let variableHelloWorld = self.jsContext.objectForKeyedSubscript("helloWorld") {
print(variableHelloWorld.toString())
}
}
catch {
print(error.localizedDescription)
}
}
}
Ошибка в строке:
self.jsContext.evaluateScript(jsSourceContents, newURL )
Ошибка говорит:
Cannot invoke 'evaluateScript' with an argument list of type '(String, URL?)'
Вы забыли метку аргумента withSourceURL:
.
self.jsContext.evaluateScript(jsSourceContents, withSourceURL: newURL)
Вам также потребуется необязательный URL-адрес. Так что либо принудительно разверните newURL
, если вы знаете, что он не может дать сбой, либо безопасно разверните его, прежде чем пытаться его использовать.
Это совсем другая тема, заслуживающая отдельного вопроса. Этот ответ касается проблемы, которую вы разместили в этом исходном вопросе.
пытался больше не выдавать мне ошибок, вы случайно не знаете, почему он не запускает скрипт по URL-адресу?