使用evaluateJavaScript(..)调用javascript函数以读取应用程序包中的文本文件
问题描述:
第一部分正常工作,这意味着WKWebview对象能够调用Java脚本函数。问题在于我认为的JavaScript代码。使用evaluateJavaScript(..)调用javascript函数以读取应用程序包中的文本文件
被调用的javascript函数应该简单地读出应用程序包中的文本文件(fileName =“data.txt”)。它看起来像这样:
function readTextFile(fileName)
{
var rawFile = new XMLHttpRequest();
rawFile.onreadystatechange = function()
{
if(rawFile.status == 4)
{
document.getElementById("demo").innerHTML = this.responseText;
}
}
rawFile.open("GET",file,true)
rawFile.send()
}
输出总是空的。现在我确信rawFile状态达到了4,我检查了它。我用一些虚构的不存在的文件替换了fileName,原始文件状态仍然达到4.所以现在我甚至不知道文件是否被找到。
- 有没有办法确定文件是否被找到?
- 如果发现我该怎么读出来?
我不是一个经验丰富的java脚本开发人员。所以这可能是一个明显的问题。我在w3schools.com的帮助下编写的javascript函数。
谢谢。
答
我认为你的代码有一些格式问题,并且你没有添加事件监听器。尝试下面的内容。也有是在MDN https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest
更好的文档因为请求是asynchron,是有意义的增加一个听众,谢谢,我不知道如何实现这一点。它还没有工作,因为函数readTextfile()没有被调用。可能还有其他的东西丢失...... – BCI
如果文本文件被放置在应用程序包中,则不调用函数readTextFile。虽然如果文本文件位于远程网络服务器上,它将被调用。我最终发现,问题在于跨源请求仅支持HTTP。这显然是因为安全限制...我会尽力寻找工作...... – BCI