第一部分工作正常,这意味着 WKWebview 对象能够调用 java 脚本函数。我认为问题在于 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,我检查过了。我已经用一些假装不存在的文件替换了文件名,原始文件状态仍然达到 4。所以现在我什至不确定是否已找到该文件。
- 有没有办法确定文件是否找到?
- 如果找到了,我该如何读出它?
我根本不是经验丰富的 Java 脚本开发人员。所以这可能是一些明显的问题。我在 w3schools.com 的帮助下编写的 javascript 函数。
谢谢。
最佳答案
我认为您的代码存在一些格式问题,并且您没有添加事件监听器。试试下面的。 MDN 上也有更好的文档 https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest
function readTextFile() {
document.getElementById("demo").innerHTML = this.responseText;
}
function getTextFile(file) {
var req = new XMLHttpRequest();
req.addEventListener("load", readTextFile)
req.open("GET", file, true)
req.send();
)
getTextFile('example.txt')
<div id="demo">
</div>
关于javascript - 使用evaluateJavaScript(..)调用javascript函数,以读取应用程序包中的文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46493133/