WkWebView Evaluatejavascript返回不支持的类型错误

编程入门 行业动态 更新时间:2024-10-23 21:24:23
本文介绍了WkWebView Evaluatejavascript返回不支持的类型错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我正在向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返回不支持的类型错误

本文发布于:2023-11-17 08:19:32,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1609440.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:不支持   错误   类型   WkWebView   Evaluatejavascript

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!