Допустим, в моем представлении Crosswalk в моей активности Android отображается такая страница:
<html>
<body>
<a target="_blank" href='http://some-website.com/document.pdf'>Download a PDF</a>
</body>
</html>
Как я могу перехватить URL-адрес этой ссылки?
Обратите внимание, что поскольку ссылка открывается в новом «окне», обратные вызовы, такие как XWalkResourceClient.shouldOverrideUrlLoading
или shouldInterceptLoadRequest
, не вызываются, вероятно, потому, что Crosswalk загружает совершенно новый документ.
Существует обратный вызов для создания окна, XWalkUIClient.onCreateWindowRequested
, но он не содержит параметров, содержащих URL-адрес, загружаемый в новом окне.
Я также знаю, что при создании нового окна пользовательский код может создать экземпляр нового XWalkView, который будет использоваться для загрузки целевого документа, и я должен установить клиент пользовательского ресурса и клиент пользовательского интерфейса.
Что я пробовал до сих пор:
- Все методы в
XWalkResourceClient
иXWalkUIClient
с параметром URL как в исходном, так и в целевом представлениях. Либо они не вызываются, либо параметр нулевой или пустой; - В
XWalkUIClient.onCreateWindowRequested
верните подкласс XWalkView, который переопределяетload()
, чтобы он мог перехватывать URL-адрес. Этот метод не вызывается.
Любое предложение приветствуется. Спасибо!