Примерно так может работать:
document.addEventListener("DOMContentLoaded", function() {
var allFrames = document.querySelectorAll("frame");
if (allFrames.length) {
var src = allFrames[0].src;
console.log(src);
var request = new XMLHttpRequest();
request.open("GET", "my-app://localhost/?src=" + encodeURIComponent(src));
request.send(null);
} else {
console.log("no frames on the page " + location.href);
}
});
Запустите этот код, используя stringByEvaluatingJavaScriptFromString из обратного вызова webViewDidFinishLoad, и обработайте выходные данные из сценария, используя обратный вызов shouldStartLoadWithRequest.
Вы видите журнал и отлаживаете скрипт с помощью Safari Web Inspector (как для симулятора, так и для устройства).