使用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.所以现在我甚至不知道文件是否被找到。

  1. 有没有办法确定文件是否被找到?
  2. 如果发现我该怎么读出来?

我不是一个经验丰富的java脚本开发人员。所以这可能是一个明显的问题。我在w3schools.com的帮助下编写的javascript函数。

谢谢。

我认为你的代码有一些格式问题,并且你没有添加事件监听器。尝试下面的内容。也有是在MDN https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest

+0

更好的文档因为请求是asynchron,是有意义的增加一个听众,谢谢,我不知道如何实现这一点。它还没有工作,因为函数readTextfile()没有被调用。可能还有其他的东西丢失...... – BCI

+0

如果文本文件被放置在应用程序包中,则不调用函数readTextFile。虽然如果文本文件位于远程网络服务器上,它将被调用。我最终发现,问题在于跨源请求仅支持HTTP。这显然是因为安全限制...我会尽力寻找工作...... – BCI