2017-09-29 1 views
0

첫 번째 부분은 잘 작동합니다. 즉, WKWebview 객체가 Java 스크립트 함수를 호출 할 수 있습니다. 문제는 자바 스크립트 코드에 있다고 생각합니다.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을 make-exist가 아닌 파일로 대체했으며 rawfile 상태가 여전히 4에 도달했습니다. 이제 파일이 발견되었는지 여부조차 잘 모릅니다.

  1. 파일을 찾았는지 확인할 방법이 있습니까?
  2. 내가 어떻게 읽을 수 있습니까?

저는 숙련 된 자바 스크립트 개발자가 아닙니다. 그래서 그것은 명백한 문제 일 수도 있습니다. 내가 w3schools.com의 도움으로 쓴 javascript 함수.

감사합니다.

답변

1

코드에 형식 문제가 있거나 이벤트 수신기를 추가하지 않는다고 생각합니다. 아래를보십시오. 요청이 asynchron이기 때문에 또한 MDN https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest

+0

더 나은 설명서, 그것은 청취자를 추가하는 말이, 내가 이것을 구현하는 방법을 몰랐 감사가있다. readTextfile() 함수가 호출되지 않기 때문에 아직 제대로 작동하지 않습니다. 누락 된 내용이있을 수 있습니다. – BCI

+0

텍스트 파일이 apps 번들에 저장되면 readTextFile 함수가 호출되지 않습니다. 텍스트 파일이 원격 웹 서버에 있으면 호출됩니다. 나는 결국 크로스 오리진 요청이 HTTP에 대해서만 지원된다는 점에서 문제가 있다는 것을 발견했다. 이것은 apperently 정당한 보안 제한에 있습니다 ... 나는 주위에 일을 찾으려고 노력할 것입니다 ... – BCI

관련 문제