2017-12-17 8 views
1

코드바 앱이 있고 InAppBrowser를 사용하여 웹 사이트에 로그인했습니다. 로그인 성공시, 응답을 앱에 전달해야합니다. 달성하기 위해 executeScript()를 사용하고 있습니다. iOS에서는 executeScript()에 대한 콜백이 실행되지 않지만 안드로이드에서는 잘 작동합니다.Cordova InAppBrowser iOS에서 콜백을 실행하지 않는 executeScript()

내 부하 정지 이벤트 리스너 내가 부하 중지 이벤트에 성공적으로 경고를 "스크립트를 실행"점점 오전

var ref = cordova.InAppBrowser.open("XXXX.html", "_blank", 'location=yes,toolbar=yes'); 


function iabLoadStop(event) { 
    alert("EXECUTING SCRIPT") 
    ref.executeScript({ 
     code: "document.body.innerHTML" 
    }, function(values) { 
     alert("SCRIPT EXECUTED") 
     alert(values) 
    }); 
} 

을 다음과 같이하지만, "SCRIPT EXECUTED"및 innerHTML을 경고하기 위해 지원했다 executeScript() 해고 당하고 있지 않습니다.

+0

JSONP를 사용하여 iabLoadStop을 호출 할 수도 있습니다. 이 링크는 [client] (https://stackoverflow.com/a/6132828/2401386) 및 [server (php)] (https://stackoverflow.com/a/6809069/2401386)에서 JSONP 응답을 처리하는 데 도움이됩니다.). – Blauharley

+0

내 문제는 iabLoadStop이 호출되고 있지 않습니다. iabLoadStop이 성공적으로 trigerred되었지만 executeScript()에 대한 CB가 실행되지 않습니다. – raghav

+0

이 CB가 어떻게 호출되는지 보여주기 위해 XXXX.html 내에 코드를 제공 할 수 있습니까? – Blauharley

답변

0

그 이유는 처음으로 alert으로 나타났습니다. 이 함수는 프로그램 흐름을 중지하지만 executeScript에 의해 실행되는 XXXX.html 내의 코드를 중지시킵니다.

그래서 적어도 iOS에서는 loadstopexecuteScript 사이의 함수 (alert/confirm 등)를 호출하는 것을 피해야합니다. console.log과 같은 대안이 있습니다.