我正在向javascript函数发送值并获得结果.但是,在以下代码下运行时,我收到错误域= WKErrorDomain代码= 5"JavaScript执行返回了不支持的类型的结果" UserInfo = {NSLocalizedDescription = JavaScript执行返回了不支持的类型的结果}"错误;
I'm sending a value to javascript function and get a result. However, I'm getting "Error Domain=WKErrorDomain Code=5 "JavaScript execution returned a result of an unsupported type" UserInfo={NSLocalizedDescription=JavaScript execution returned a result of an unsupported type}" error when run below code;
webView?.evaluateJavaScript("getURL()") { (result, error) in if let error = error { print("\(error)"); return } if let song = result as? String { print("\(song)"); } }和如下的javascript代码;
and javascript code as follows;
function getURL(){ CloudKit.configure({ containers: [{ // To use your own container, replace containerIdentifier and apiToken containerIdentifier: 'iCloud.hello.myapp', apiToken: 'myApiKey', environment: 'development' }] }); console.log("cloudkitloaded"); var self = this; console.log("get default container"); var container = CloudKit.getDefaultContainer(); console.log("set publicDB"); var publicDB = container.publicCloudDatabase; self.items = ko.observableArray(); // Fetch public records // self.fetchRecords = function() { console.log("fetching records from " + publicDB); var query = { recordType: 'Musics'}; // Execute the query. return publicDB.performQuery(query).then(function(response) { if(response.hasErrors) { console.error(response.errors[0]); return; } var records = response.records; var numberOfRecords = records.length; if (numberOfRecords === 0) { console.error('No matching items'); return; } console.log(records.length + " records") //console.log(records[0].fields.Song_File.value.downloadURL); self.items(records); myVar = records[emre].fields.Song_File.value.downloadURL; document.getElementById('someId').innerHTML = myVar; }); return "emre"; };推荐答案
我遇到了同样的事情,搜索将我带到了这里.后来,我找到了答案:
I ran into same thing, and search brought me here. Later, I found the answer:
这可能是由于您的javascript返回了nil,然后将其报告为错误.只允许返回一个字符串.因此,只需将这些return语句更改为return ''或返回'error msg'`即可解决此问题.
This is probably due to returning nil from your javascript, which is then reported as an error. Only a string is allowed to be returned. So just changing those return statements to return '' or return 'error msg'`should fix it.
更多推荐
WkWebView Evaluatejavascript返回不支持的类型错误
发布评论