WkWebView Evaluatejavascript返回不支持的类型错误 [英] WkWebView Evaluatejavascript returns unsupported type error
问题描述
我正在向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.com.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返回不支持的类型错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!