2016-12-12 4 views
1

У меня есть inAppBrowser (отображение веб-представления в моем приложении - ios). Для этого я использую плагин inAppBrowser для Кордовы. Если я получаю доступ к URL-адресу pdf, я меняю свою цель с _blank на _system. Проблема возникает сейчас: у меня есть 2 события: loadstart и loadstop. Если я получаю доступ к loadstart для вызова _system target, позади, после загрузки loadstop, вид будет изменен. Моя цель: я хочу, чтобы мое приложение было целевым: _blank почти все время. После того, как я получаю доступ к pdf-url (пример: http://www.orimi.com/pdf-test.pdf), мое приложение хочет иметь цель: _system (только в формате pdf), и после того, как я перейду из сети, приложение shoult не тронуто (ни один URL не изменился). Я позволю свой код здесь. Спасибо ..Cordova - eventListener/executeScript для _blank & _system target

var inAppBrowserRef; 
var app = { 

initialize: function() { 
    document.addEventListener('deviceready', this.onDeviceReady.bind(this), false); 
}, 

onLoadStart: function(event) { 
    if (event.url.length > 3 && event.url.substr(event.url.length - 3).toLowerCase() == 'pdf') { 
    inAppBrowserRef.executeScript({ code: 'history.go(0);' }); 
    cordova.InAppBrowser.open(event.url, '_system'); 
    } 
}, 

onDeviceReady: function() { 
    console.log('Starting InAppBrowser'); 
    inAppBrowserRef = cordova.InAppBrowser.open('https://google.ro/', '_blank', 'location=no'); 
    inAppBrowserRef.addEventListener('loadstart', this.onLoadStart); 
    inAppBrowserRef.addEventListener('loadstop', function() { 
     inAppBrowserRef.executeScript({ code: 'document.body.classList.add("app");' }); 
    }); 
    }, 
}; 
app.initialize(); 

ответ

0

Если я вас правильно понял, вы должны захватить IAB в exit событие не loadstop. Делая это, когда пользователь закрывает окно Google, будет отображаться PDF.

Ваш код начнет загружать Google в окно blank, а при загрузке начнется попытка запуска браузера system для PDF. Если наш опыт - это что-то, что может произойти, это приведет к сбою, так как открытие окна system изменит состояние окна blank. Если вам нужно, чтобы они работали бок о бок, вы, вероятно, столкнулись с миром боли, нам пришлось разветвить IAB, чтобы заставить это работать между прочим - наш прецедент довольно сложный.

+0

URL-адрес google является примером. На стороне IAB он работает отлично, пока у меня нет pdf-файла впереди. Когда я обращаюсь к нему, он открывает браузер (_систему), но когда я его закрываю, у меня проблема. моя IAB продолжает этот url. Я хочу заблокировать страницу на стороне IAB и делать вещи только с помощью PDF на стороне браузера. Aaand, после того, как я закончу со своей стороны браузера, вернувшись назад, на IAB (_blank) я хочу иметь возможность снова получить pdf-файл в тех же условиях. –

+0

С другой стороны, возможно, как-то можно прочитать это pdf, с плагином cordova .. но я попробовал открыватель файлов 2, и не работал для меня, для URL-адресов ... И я расскажу вам, что именно я хочу. Все, что я хочу, это иметь возможность читать этот PDF, и вернуться назад к моему приложению IOS. Если я просто получаю доступ к URL-адресу PDF прямо сейчас, он открывается, но у меня нет BACK BUTTON, и я не знаю, как это сделать .. –

+0

Я сомневаюсь, что это связано с pdf - если вы используете другой URL-адрес, я подозреваю, Я получаю такое же поведение. У нас возникли серьезные проблемы при открытии с _system IAB при открытии и активировании другого (_blank) экземпляра, собственный код для браузера _system взаимодействует с кодом для существующего окна (в нашем случае сбои), я предполагаю, что это источник ваше _blank окно навигации. –

Смежные вопросы