2017-04-25 1 views
0

내 웹 페이지에 id 테스트의 p 태그가 있습니다. 다음과 같이 모든 것이 잘 작동합니다.evaluateJavaScript()가 각도로 생성 된 내용에 액세스 할 때 안정적인 내용을 얻을 수 없습니까?

HTML,

<p id="test">hhhhhhhhhhhh</p> 
<body ng-app="home" ng-controller="HomeController" style="min-height:700px;"> 
    <printerinfo></printerinfo> 
</body> 

swift3, 내가 템플릿 printerinfo에 p 태그를 이동하는 동안

func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) { 
    self.wk.evaluateJavaScript("document.getElementById('test').innerHTML;") { (result, error) -> Void in 
    -> 
     if error != nil { 
      print(error) 
     } 
     print(result) 
    } 
} 

, 내가 얻을

UserInfo={WKJavaScriptExceptionLineNumber=1, WKJavaScriptExceptionMessage=TypeError: null is not an object (evaluating 'document.getElementById('test').innerHTML')

대부분의 경우, 그리고 남아있는 경우 결과와 함께 잘 작동합니다. Optional(hhhhhhhh)

그리고 여기에 ios wkwebview 페이지 내용이 있습니다. Safari technology Preview의 개발> 아이폰 장치 이름의 창입니다. 그리고 콘솔에서 innerHTML에 액세스 할 수 있습니다. enter image description here

지금은 웹 사이트에 먹이를 먹기 전에 evaluateJavaScript가 실행되었다고 생각합니다.

답변

0

웹 페이지의 동적 콘텐츠 때문입니다. 나는 자바 스크립트를 사용하여 페이지가로드되었는지 확인한 다음 네이티브 스위프트 코드에 다음 프로세스를 알리는 방법으로이 문제를 해결했습니다.

자세한 내용은 post입니다.

관련 문제